Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Vitaly Sotnikov
    @VeeSot
    Тест.
    serdar1980
    @serdar1980
    PING
    Михаил Новиков
    @mikanoz
    200 ОК
    Vitaly Sotnikov
    @VeeSot
    А так то интересная приблуда.
    serdar1980
    @serdar1980
    answer incorect need pong :smile:
    Михаил Новиков
    @mikanoz
    $this->assertEquals($product2->id, $list[0]->id);
    $this->assertEquals($product1->id, $list[1]->id);
    $this->assertEquals($product3->id, $list[2]->id);
    красота :)
    serdar1980
    @serdar1980
    А скап резал часть кода?
    а как долго это будет храниться и можно ли почитать историю.
    Vitaly Sotnikov
    @VeeSot
    Прелесть )
    Чувствую он поодерживает синтаксис на базе того какой используется в репозитории.
    Не удержался
    def production_env():
    """Окружение для продакшена"""
    pass
    Угу.Логично ребята сделали.
    Михаил Новиков
    @mikanoz
    хм. не пойму только. можно ли настроить чтобы браузер в свернутом виде (или при открытой другой вкладке) сигнализировал что тут что-то кто-то сообщил.
    в настройках, говорит "браузер запрещает"
    не запрещал вроде
    Михаил Новиков
    @mikanoz
    This message was deleted

    @serdar1980

    а как долго это будет храниться и можно ли почитать историю.

    https://gitter.im/VeeSot/yalms/archives/all

    @VeeSot

    Чувствую он поодерживает синтаксис на базе того какой используется в репозитории.

    просто markdown

    фигня. не квакает как скайп )))
    Vitaly Sotnikov
    @VeeSot
    Напишите пользовательский скрипт и встройте в страничку.Будет квакать.
    Теоретически.
    Михаил Новиков
    @mikanoz
    в моем случае звук не поможет, нужна еще и мигалка при закрытом окне :-)
    Vitaly Sotnikov
    @VeeSot
    Но тут ништяки в том что видишь кто прочитал твое сообщение
    Vitaly Sotnikov
    @VeeSot
    http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it в тему того что более рассово верно делать чуток не такое апи как предусматривает ларавел.
    То бишь не /course и /course/1,а чуток иначе /courses и /course/1 - то бишь индексная страничка имеет "множественное" окончание(plural)
    Хотя каждый кулик своё болото хвалит =).По мне - так логичнее.
    Михаил Новиков
    @mikanoz
    да как хотите, с resource просто строже, все одинаковое )
    Vitaly Sotnikov
    @VeeSot
    А по смыслу же множественное правильнее
    Михаил Новиков
    @mikanoz
    используя Route::resource, мы оперируем понятием "ресурс" и не должны выходить за рамки его функциональности, тогда в api будет строгий порядок
    используя обычные Route::get, Route::post и т.п. мы можем делать что хотим и вероятность устроить бардак выше
    вот и вся (на мой взгляд) разница
    schtanislau
    @schtanislau
    Хм, как-то странно у меня коммиты пошли
    schtanislau
    @schtanislau
    Господа, известно ли кому: почему при попытке закоммитить вылетает ошибка доступа (403)? Где этот самый доступ можно получить, если не секрет? :)
    Михаил Новиков
    @mikanoz
    При попытке закоммитить не может быть такой ошибки, коммит это фиксация изменений в локальном хранилище
    Это на push скорее всего ругается. Логин-пароль должен просить от репозитория (от гитхаба в данном случае). Не просит?
    Vitaly Sotnikov
    @VeeSot
    Или лучше освоить ssh-ключи.Практично и удобно.
    schtanislau
    @schtanislau
    Да, на пуш, точнее. Логин/пасс не просит, IDE к гитхабу привязано, связь есть.
    В консоли пишет следующее:
    remote: Permission to VeeSot/yalms.git denied to schtanislau@gmail.com.
    fatal: unable to access 'https://github.com/VeeSot/yalms.git/': The requested URL returned error: 403
    На stackoverflow пишут, что нужно в таком случае через fork и делать pull request. Если не секрет, как вы делали?
    Михаил Новиков
    @mikanoz
    До чего же вы меня умиляете. Об этом в вики есть инфа :)
    К теме из скайпа про компоненты:
    <?php
    
    
    /**
     * Пример компонента, которым удобно пользоваться
     * и контроллеру, и другим частям системы
     * а сам он даже не знает, кто его использует (и не должен)
     */
    
    class Component {
    
        /** @var  \Illuminate\Validation\Validator */
        private $validator;
    
        /** @var User */
        private $user;
    
        /** @var array */
        private $rules = [
            'create' => [
                'phone' => 'required',
            ],
            'update' => [
                'email' => 'required',
            ]
        ];
    
        /**
         * @param array $data сырые данные от кого-то
         *
         * @return bool
         */
        public function create($data){
    
            // отдельным методом валидируем данные для сохранения
            if(!$this->validateCreate($data)){
                return false;
            }
    
            // теперь эти данные превращаем в модели и в базу
            $this->doCreateUser($data);
            return true;
    
        }
    
    
        public function userId(){
    
            return $this->user->id;
    
        }
    
        /**
         * @param array $data проверенные специально для создания пользователя данные
         */
        private function doCreateUser($data)
        {
    
            // сюда должны приходить только проверенные данные
    
            $user = new User;
            $user->phone = $data['phone'];
            $user->save();
    
            // здесь же при необходимости всякая бизнес-логика, связанная с сохранением
            // например запись в логи, создание связанных записей в других моделях и т.п.
    
            // запомним здесь свежего пользователя
    
            $this->user = $user;
    
    
        }
    
    
        private function validateCreate($data)
        {
            // берем правила, специально для валидации создания
    
            $rules = $this->rules['create'];
    
            // запускаем валидатор
    
            $this->validator = Validator::make($data, $rules);
    
            // возвращаем булево (true если валидация прошла, false - если нет)
    
            return $this->validator->passes();
        }
    
    
        public function errors(){
    
            // в данном случае мы вернули ошибки валидатора, если они есть
            if($this->validator->errors()->any()){
                return $this->validator->errors();
            }
    
            // если ошибок валидации нет, но есть другие ошибки, мы можем
            // создать объект MessageBag и вручную добавить в него ошибки
    
            return null;
    
        }
    
        public function errorsAsArray(){
    
            // здесь возвращаем не объект MessageBag от валидатора
            // а как хотим в виде массива
    
            if($this->validator->errors()->any()){
                return $this->validator->errors()->all();
            }
    
            // если ошибок валидации нет, но есть другие ошибки, мы можем
            // создать массив и вернуть его здесь
    
            return null;
    
        }
    
    
    }
    Михаил Новиков
    @mikanoz
    Vitaly Sotnikov
    @VeeSot
    Ладно,абстрактный пример понятен(насколько может быть понятно при беглом осмотре).
    Но... private $user и потом $this->user = $user
    А потом когда в контроллере будем пытаться получить доступ к этому полю/атрибуту
    то есть примерно так
    $component = new Component->create($myData)
    $user = $component->user;(да именно тут)
    Оно нас не пошлет что мы суемся в приват-область?
    Vitaly Sotnikov
    @VeeSot
    +Еще аналогичный вопрос в том же ключе.
    Если мы создаем юзера,но данные не валидны и мы захотим достучаться до ошибок,а они private $validator - опять не пошлет ли нас?
    Михаил Новиков
    @mikanoz
    конечно пошлет. не надо давать доступ к атрибутам внешнему окружению
    только тем, которые внешнее окружение может менять
    а эти атрибуты оно менять не должно, значит приват
    вобщем, бегло не годится. смотреть внимательно :)