These are chat archives for LaravelRUS/chat

29th
Apr 2014
Alexander Zhuravlev
@SCIF
Apr 29 2014 00:50 UTC
Кто каким шлюзом оплату с карточек принимает? В данный момент смотрю rbc money
Maxim
@Big-Shark
Apr 29 2014 00:51 UTC
Я только для НЗ(Новой зеландии) делал, там напрямую было через бнз и евей
Alexander Zhuravlev
@SCIF
Apr 29 2014 00:52 UTC
Что такое бнз?
Вот с этой часто работают знаю http://www.payonlinesystem.com/
http://www.payonline.ru/ вроде ониже
silverslice
@silverslice
Apr 29 2014 02:34 UTC
Привет! Подскажите, есть ли готовый скелет приложения для laravel с разделением на frontend / backend с использованием namespace?
Alexander Zhuravlev
@SCIF
Apr 29 2014 02:35 UTC
@silverslice , есть разного рода заготовки для бэкенда. А каким образом ты хочешь заготовку для фронтенда — непонятно, т.к. это ведь всё крайне специфично для каждого проекта. Никогда по фронтенду ничего не встречал подобного
silverslice
@silverslice
Apr 29 2014 02:43 UTC
Есть вариант сделать подкаталог controllers/admin/ и там создавать классы AdminArticlesController, тоже самое для views и models, думал есть какое-нибудь более изящное решение, позволяющее выделить backend в отдельное приложение
Alexander Zhuravlev
@SCIF
Apr 29 2014 02:46 UTC
@silverslice , кури workbench'и, если хочется разделять
silverslice
@silverslice
Apr 29 2014 02:56 UTC
Спасибо, посмотрю
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 04:49 UTC
@SCIF workbench паттерн?
Alexander Zhuravlev
@SCIF
Apr 29 2014 04:57 UTC
@Lehad , workbench в понятиях лары, это создаваемый пакет — laravel.com/docs/packages
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 05:40 UTC
@SCIF а, отлично. Я до этого просто еще не дошел. Вообще Laravel нравится все больше...
slider23
@slider23
Apr 29 2014 05:49 UTC
@Lehad я в blade-шаблонах не использую {{ }}, оно неудобно. Лучше старое доброе <?= ?>
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 05:59 UTC
@slider23 да ладно, норм. Blade так blade.
slider23
@slider23
Apr 29 2014 06:00 UTC
Подсветка переменных там не работает в IDE
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:00 UTC
Что я делаю не так?
<?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 UTC
я так пологаю 3 аргумент это параметры для роутов или типа того, то что убдет передано в функцию
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:05 UTC
@Big-Shark ООООооооуууу...
Логично
А что тогда делать? Как прикрепит данные?
Maxim
@Big-Shark
Apr 29 2014 06:07 UTC
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 UTC
Ты это взял в API ?
Maxim
@Big-Shark
Apr 29 2014 06:07 UTC
угу
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:07 UTC
класс, сам бы мог догадаться
Спасибо
Maxim
@Big-Shark
Apr 29 2014 06:08 UTC
Пробуй, пиши если не получится
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:08 UTC
Хмм. $files есть, а $input нет. Неужели тупо $_GET['bla'] = 'some'?
This message was deleted
Maxim
@Big-Shark
Apr 29 2014 06:10 UTC
4 аргумент
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:11 UTC
Ну да, верно. Формы, это ведь обычно POST-параметры.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:17 UTC
@Big-Shark ну да, это забавно =)))
Alexander Zhuravlev
@SCIF
Apr 29 2014 06:19 UTC
Что именно забавно? Поясните плиз. Что-то ничего ненормального (кроме хардкода доменного имени) не вижу.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 06:19 UTC
Ок ребят, все хорошо, всем спасибо
<?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 UTC
все привет. помогите мне с правами на файлы и папки в ubuntu. помню вы как-то обсуждали.
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:11 UTC
:~$ 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 UTC
да это понятно... только я добавил пользователя в группу www-data, а все равно не работает
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:13 UTC
@Butochnikov -R говорит о рекурсии. Проверь, ты делал mkdir с этим ключом или нет.
Alexey
@Butochnikov
Apr 29 2014 08:13 UTC
делал
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:14 UTC
А что не работает? Биты-доступа не меняются?
Alexey
@Butochnikov
Apr 29 2014 08:15 UTC
у меня два пользователя... один www-data другой user. вот если на папке стоит группа www-data то все ок, а если группа user, то не работает
хотя user в группе www-data
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:19 UTC
А нужно чтобы доступ был только у подгруппы www-data/user ?
Alexey
@Butochnikov
Apr 29 2014 08:25 UTC
так если я создаю фалы под user то каждый раз выставлять права?
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 08:25 UTC
Что значит "все ок" ?
Я не понимаю проблемы
Alexey
@Butochnikov
Apr 29 2014 08:32 UTC
это значит, что laravel запускается, а в другом случае 404
Orel
@2byte
Apr 29 2014 09:09 UTC
Мне Владимир делал
RomM1
@RomM1
Apr 29 2014 09:37 UTC
Здравствуйте. При обновлении композера выскакивает: Fatal error: Out of memory (allocated 324534272) (tried to allocate 32 bytes).
Единственное решение переезжать на более мощный сервер?
Alexey
@Butochnikov
Apr 29 2014 09:39 UTC
ну или обновить у себя, а потом залить обратно
RomM1
@RomM1
Apr 29 2014 09:39 UTC
@Lehad второй выдает ошибку, потому что в модели User не прописаны fillable или guarded атрибуты. Подробнее читайте на http://laravel.ru/docs/v4/eloquent#массовое
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 09:44 UTC
Но 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 UTC
@RomM1 На stackoverflow еще сказали, что можно так:
protected $guarded = array(); // без fillable
Alexander Egorov
@Amegatron
Apr 29 2014 09:53 UTC
@Lehad насчечт твоего "почему не работает User::create..." - юзера должно быть protected поле $fillable = array('name', 'email', ...)
Алексей Данчин
@Aleksey-Danchin
Apr 29 2014 09:53 UTC
@Amegatron спасибо =)
Alexey
@Butochnikov
Apr 29 2014 11:27 UTC
народ такой вопрос... вот думаю начать писать статью про deploy (rocketeer, dokku). надо, пользуется ли кто?
Alexander Zhuravlev
@SCIF
Apr 29 2014 11:45 UTC

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

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

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

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