These are chat archives for LaravelRUS/chat

29th
Apr 2014
Alexander Zhuravlev
@SCIF
Apr 29 2014 00:50
Кто каким шлюзом оплату с карточек принимает? В данный момент смотрю rbc money
Maxim
@Big-Shark
Apr 29 2014 00:51
Я только для НЗ(Новой зеландии) делал, там напрямую было через бнз и евей
Alexander Zhuravlev
@SCIF
Apr 29 2014 00:52
Что такое бнз?
Вот с этой часто работают знаю http://www.payonlinesystem.com/
http://www.payonline.ru/ вроде ониже
silverslice
@silverslice
Apr 29 2014 02:34
Привет! Подскажите, есть ли готовый скелет приложения для laravel с разделением на frontend / backend с использованием namespace?
Alexander Zhuravlev
@SCIF
Apr 29 2014 02:35
@silverslice , есть разного рода заготовки для бэкенда. А каким образом ты хочешь заготовку для фронтенда — непонятно, т.к. это ведь всё крайне специфично для каждого проекта. Никогда по фронтенду ничего не встречал подобного
silverslice
@silverslice
Apr 29 2014 02:43
Есть вариант сделать подкаталог controllers/admin/ и там создавать классы AdminArticlesController, тоже самое для views и models, думал есть какое-нибудь более изящное решение, позволяющее выделить backend в отдельное приложение
Alexander Zhuravlev
@SCIF
Apr 29 2014 02:46
@silverslice , кури workbench'и, если хочется разделять
silverslice
@silverslice
Apr 29 2014 02:56
Спасибо, посмотрю
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 04:49
@SCIF workbench паттерн?
Alexander Zhuravlev
@SCIF
Apr 29 2014 04:57
@Lehad , workbench в понятиях лары, это создаваемый пакет — laravel.com/docs/packages
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 05:40
@SCIF а, отлично. Я до этого просто еще не дошел. Вообще Laravel нравится все больше...
slider23
@slider23
Apr 29 2014 05:49
@Lehad я в blade-шаблонах не использую {{ }}, оно неудобно. Лучше старое доброе <?= ?>
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 05:59
@slider23 да ладно, норм. Blade так blade.
slider23
@slider23
Apr 29 2014 06:00
Подсветка переменных там не работает в IDE
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:00
Что я делаю не так?
<?php

Class RegistrationFormTest extends TestCase
{
    public function testValidationOfForm()
    {
        $method = 'POST';
        $action = 'AccountController@postRegistration';
        $data = array(
            'name' => 'Aleksey',
            'email' => 'email@em.com',
            'password' => '123',
            'password_confirmation' => '123',
        );
        $response = $this->action($method, $action, $data);
    }
}
al@al:/var/some.local$ phpunit
PHPUnit 3.7.28 by Sebastian Bergmann.

Configuration read from /var/some.local/phpunit.xml

..array(4) {
  [0] =>
  string(27) "The name field is required."
  [1] =>
  string(28) "The email field is required."
  [2] =>
  string(31) "The password field is required."
  [3] =>
  string(44) "The password confirmation field is required."
}


Time: 323 ms, Memory: 6.25Mb

OK (2 tests, 1 assertion)
Ну и соответственно
Class AccountController extends BaseController{
...
public function postRegistration()
{
    $rules = array(
        'name' => array('required', 'min:5'),
        'email' => array('required', 'unique:users,email', 'email'),
        'password' => array('required', 'min:5', 'confirmed'),
        'password_confirmation' => array('required'),
    );
    $validator = Validator::make(Input::all(), $rules);
    var_dump($validator->messages()->all());
}
}
Отчего $data не считывается Input::all() ? Ведь в доках пример однозначный:
$response = $this->action('GET', 'HomeController@index');

$response = $this->action('GET', 'UserController@profile', array('user' => 1));
Maxim
@Big-Shark
Apr 29 2014 06:04
я так пологаю 3 аргумент это параметры для роутов или типа того, то что убдет передано в функцию
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:05
@Big-Shark ООООооооуууу...
Логично
А что тогда делать? Как прикрепит данные?
Maxim
@Big-Shark
Apr 29 2014 06:07
action(string $method, string $action, array $wildcards = array(), array $parameters = array(), array $files = array(), array $server = array(), string $content = null, bool $changeHistory = true)
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:07
Ты это взял в API ?
Maxim
@Big-Shark
Apr 29 2014 06:07
угу
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:07
класс, сам бы мог догадаться
Спасибо
Maxim
@Big-Shark
Apr 29 2014 06:08
Пробуй, пиши если не получится
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:08
Хмм. $files есть, а $input нет. Неужели тупо $_GET['bla'] = 'some'?
This message was deleted
Maxim
@Big-Shark
Apr 29 2014 06:10
4 аргумент
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:11
Ну да, верно. Формы, это ведь обычно POST-параметры.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:17
@Big-Shark ну да, это забавно =)))
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:19
Что именно забавно? Поясните плиз. Что-то ничего ненормального (кроме хардкода доменного имени) не вижу.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:19
Ок ребят, все хорошо, всем спасибо
<?php

Class AccountController extends BaseController
{
...
    public function postRegistration()
    {
        $rules = array(
            'name' => array('required', 'min:5'),
            'email' => array('required', 'unique:users,email', 'email'),
            'password' => array('required', 'min:5', 'confirmed'),
            'password_confirmation' => array('required'),
        );
        $validator = Validator::make(Input::all(), $rules);
        if($validator->failed()) return 'Houston, we have a problem.';
        return 'All right';
    }
}
<?php

Class RegistrationFormTest extends TestCase
{
    public function testValidationOfForm()
    {
        $method = 'POST';
        $action = 'AccountController@postRegistration';
        $wildcards = array();
        $parameters = array();
        $files = array();
        $server = array();
        $content = null;
        $changeHistory = true;

        $parameters = array(
            'name' => 'Aleksey',
            'email' => 'email@em.com',
            'password' => '12345',
            'password_confirmation' => '12345',
        );

        $response = $this->action($method, $action, $wildcards, $parameters, $files, $server, $content, $changeHistory);
        $this->assertEquals('All right', $response->getContent());
    }
}
al@al:/var/some.local$ phpunit
PHPUnit 3.7.28 by Sebastian Bergmann.

Configuration read from /var/some.local/phpunit.xml

..

Time: 331 ms, Memory: 6.00Mb

OK (2 tests, 2 assertions)
al@al:/var/some.local$
@SCIF забавна такая банальная инкапсуляция на таком высоком уровне фреймворка.
Alexey
@Butochnikov
Apr 29 2014 08:04
все привет. помогите мне с правами на файлы и папки в ubuntu. помню вы как-то обсуждали.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:11
:~$ sudo mkdir -R XXX /path/to/file
Почему 1 код работает, а второй выдает ошибку?
$user = new User;
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make( Input::get('password') );
$user->save();
User::create(array(
    'name' => Input::get('name'),
    'email' => Input::get('email'),
    'password' => Hash::make( Input::get('password') ),
));
Illuminate \ Database \ Eloquent \ MassAssignmentException
name
Alexey
@Butochnikov
Apr 29 2014 08:12
да это понятно... только я добавил пользователя в группу www-data, а все равно не работает
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:13
@Butochnikov -R говорит о рекурсии. Проверь, ты делал mkdir с этим ключом или нет.
Alexey
@Butochnikov
Apr 29 2014 08:13
делал
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:14
А что не работает? Биты-доступа не меняются?
Alexey
@Butochnikov
Apr 29 2014 08:15
у меня два пользователя... один www-data другой user. вот если на папке стоит группа www-data то все ок, а если группа user, то не работает
хотя user в группе www-data
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:19
А нужно чтобы доступ был только у подгруппы www-data/user ?
Alexey
@Butochnikov
Apr 29 2014 08:25
так если я создаю фалы под user то каждый раз выставлять права?
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:25
Что значит "все ок" ?
Я не понимаю проблемы
Alexey
@Butochnikov
Apr 29 2014 08:32
это значит, что laravel запускается, а в другом случае 404
Orel
@2byte
Apr 29 2014 09:09
Мне Владимир делал
RomM1
@RomM1
Apr 29 2014 09:37
Здравствуйте. При обновлении композера выскакивает: Fatal error: Out of memory (allocated 324534272) (tried to allocate 32 bytes).
Единственное решение переезжать на более мощный сервер?
Alexey
@Butochnikov
Apr 29 2014 09:39
ну или обновить у себя, а потом залить обратно
RomM1
@RomM1
Apr 29 2014 09:39
@Lehad второй выдает ошибку, потому что в модели User не прописаны fillable или guarded атрибуты. Подробнее читайте на http://laravel.ru/docs/v4/eloquent#массовое
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 09:44
Но seeder то работает
<?php

Class UserTableSeeder extends DatabaseSeeder
{
    public function run()
    {
        $users = [
            [
                'name' => 'Aleksey',
                'email' => 'email1@e.ru',
                'password' => '123',
                'confirmation' => true,
                'birthday' => '1992.08.25',
            ],
            [
                'name' => 'Timafey',
                'email' => 'email2@e.ru',
                'password' => 'qwe',
                'confirmation' => true,
                'birthday' => '1999.11.02',
            ],
            [
                'name' => 'Larica',
                'email' => 'email3@e.ru',
                'password' => 'abc',
                'confirmation' => true,
                'birthday' => '1982.08.25',
            ],
        ];

        foreach($users as $user)
        {
            User::create($user);
        }
    }
}
@RomM1 ща попробуем
@RomM1 ну да, сработало
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 09:50
@RomM1 На stackoverflow еще сказали, что можно так:
protected $guarded = array(); // без fillable
Alexander Egorov
@Amegatron
Apr 29 2014 09:53
@Lehad насчечт твоего "почему не работает User::create..." - юзера должно быть protected поле $fillable = array('name', 'email', ...)
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 09:53
@Amegatron спасибо =)
Alexey
@Butochnikov
Apr 29 2014 11:27
народ такой вопрос... вот думаю начать писать статью про deploy (rocketeer, dokku). надо, пользуется ли кто?
Alexander Zhuravlev
@SCIF
Apr 29 2014 11:45

У mkdir ключ -p чтобы создавались дирки несуществующие до конечной. У chmod есть ключик чтобы создаваемые файлы в директории всегда принадлежали определённой группе — очень удобно.

@Butochnikov , пиши, это дело полезное. Не пользуемся, но хотим.

Alexey
@Butochnikov
Apr 29 2014 11:46
Какой это ключ?
@SCIF а у тебя сейчас как deploy устроен?
slider23
@slider23
Apr 29 2014 11:47
@Butochnikov кажется, @Big-Shark недавно возился с рокетиром.
Alexey
@Butochnikov
Apr 29 2014 11:49
мне вообще интересно кто как заливает код на продакшен?
slider23
@slider23
Apr 29 2014 11:50
Я тупо копирую файлики руками. :(
Alexey
@Butochnikov
Apr 29 2014 11:51
запускаешь миграции? композер? и т.д.
Orel
@2byte
Apr 29 2014 11:51
@Butochnikov У меня в админ панели форма, где я пишу нужные мне дириктории для выгрузки app/components public/images и т.д., они пакуются в архив и на хосте распаковываются относительно корня, вот хочу сделать компонент для лары
slider23
@slider23
Apr 29 2014 11:52
делаю upload из phpstorm. Но это со старыми фреймворками, ларавеля в продакшне у меня еще нет.
Alexey
@Butochnikov
Apr 29 2014 11:52
ко всем: а сервер на это время останавливаете?
Orel
@2byte
Apr 29 2014 11:52
Нет
slider23
@slider23
Apr 29 2014 11:53
я делаю это утром, когда народа мало
если большие изменения
если небольшие - прямо наживую
Alexey
@Butochnikov
Apr 29 2014 11:55
ок, понял
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:01
git pull тупо.
Alexey
@Butochnikov
Apr 29 2014 12:03
@SCIF с исходниками понятно, а базами или если надо composer update?
Orel
@2byte
Apr 29 2014 12:03
sql запрос
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:04

@Butochnikov ,

A  numeric  mode  is  from  one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1.
       Omitted digits are assumed to be leading zeros.  The first digit selects the set user ID (4) and set group ID  (2)

Вот про sgid и речь — то есть что-то в духе chmod 2770 я уже тут советовал.

@Butochnikov , миграции. Да, composer install — какой же может быть composer update на сервере?
Alexey
@Butochnikov
Apr 29 2014 12:06
я же не знаю как ты делаешь, может добавил один пакет, залил исходники и update
а ты git pull, а потом линк меняешь?
Alexander Egorov
@Amegatron
Apr 29 2014 12:08
кстати раз уж заговории, такой вопрос: как зашатдаунить сайт через artisan ? и соотв-но потом поднять снова?
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:09
@Butochnikov , какие линки менять?
@Amegatron , php artisan down же
Alexander Egorov
@Amegatron
Apr 29 2014 12:09
@SCIF ясно, спасибо )
а то я только вживую апдейтил до сих пор :D
хоть и редко приходилось это делать
Alexey
@Butochnikov
Apr 29 2014 12:10
@SCIF симлинки
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:11
@Butochnikov , кэп? Сорри, не признал. Про что речь? Какие симлинки? Гит работает с симлинками. А причём тут я?
Alexey
@Butochnikov
Apr 29 2014 12:14
@SCIF ты написал, что заливаешь на сервер с помощью git pull, так? на рабочий сайт?
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:16
Ага :) Конфликтов быть не может, а обновление файлов проводится гитом только после получения полной копии — он сам быстро перекидывает хардлинки
Alexey
@Butochnikov
Apr 29 2014 12:16
мене интересна ситуация когда есть рабочий сайт, ходят юзвери и нужно выкатить новую версию. кто-то отключает на время сайт, заливает сайт, базы, композер инсталл и т.д.
а кто-то заливает в отдельную папку, делает все нужные действия, потом меняет симлинк и готово. сайт отключать не надо. так работает рокетер.
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:18
@Butochnikov , это ты говоришь про снапшотные деплои. Это кошерно
Кошерно, не в том, что оно перекинет быстро (эффективность гита не сильно ниже — ниже порога критичности), а в том, что он с новой версией миграций может базу заапдейтить, а только потом файлики выкатывать
@Butochnikov , да я грейдил только на небольшом сайтеге. В случае ахтунга вроде отсутствия полей в бд — одна-две 500ые выдаст. Некритично было
Да и грейдил я так — git pull && php ./oil r migrate — то есть исполнения миграций проходили сразу же после появления файлов
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:24
На серьёзных сайтах ещё не делал деплои
Alexey
@Butochnikov
Apr 29 2014 12:27
т.е. если нужно будет сделать composer install/update юзвери смотрят ошибки )))
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:29
Ага. :) Но когда я деплоил, то композера ещё не было в составе фьюла. Лару деплоил один проект — юзал down.
Alexey
@Butochnikov
Apr 29 2014 12:49
скора laracon... ждёте?
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:50
Похрену :)
Alexey
@Butochnikov
Apr 29 2014 12:51
в этот раз "трансляция" должна получится круче чем в прошлый раз
надеюсь Максим поможет. он там будет,
Alexander Zhuravlev
@SCIF
Apr 29 2014 12:53
Какой Максим там будет??
Alexey
@Butochnikov
Apr 29 2014 12:53
Maks Surguy
goodaeu
@goodaeu
Apr 29 2014 18:26
Всем привет, я только начал работать с laravel, подскажите в чем смысл или выгода в использовании в шаблоне HTML::style('css/main.css') место обычного <link ... /> ?
Alexander Egorov
@Amegatron
Apr 29 2014 18:27
ну если судить по результату - то ничем, но мне HTML::style удобнее, так как я все время забываю полный синтаксис <link ...
goodaeu
@goodaeu
Apr 29 2014 18:27
ну вообще такая же фигня, тоже удобнее то решил узнать может есть какая еще выгода)
Alexander Egorov
@Amegatron
Apr 29 2014 18:28
ну вообще есть ярые приверженцы дзена =) использовать HTML и Form типо как по фэншую считается :)
slider23
@slider23
Apr 29 2014 18:29
@goodaeu никакого особенного смысла нету. кому-то удобнее html писать, а кто-то html не знает, вот и сделали такую запись.
goodaeu
@goodaeu
Apr 29 2014 18:31
понятно, вообщем по большому счету просто как удобнее) спасибо)
видели?