• Как сгенерировать модели по существующим таблицам в Laravel5?

    Denormalization
    @Denormalization
    Не нужно ничего генерировать. Модель и должна быть пустой. Там максимум что можно прописать $fillable и $table.
    Больше ничего не нужно.
    Ответ написан
  • Заказчик хочет получить проект до оплаты?

    Denormalization
    @Denormalization
    Заказчик же написал:
    This looks great now. Please send the code files. I will release the payment soon after receiving the code files.


    Т.е проект funded, и стало быть деньги уже внесены. Значит ничего боятся не надо.
    Я как делаю:
    - Показываю работу у себя на сервере или на сервере у заказчика
    - Заказчик одобряет
    - Я высылаю ему файлы по email/skype или через сообщения на upwork.
    - Сразу же жму закончить проект, и туда же прикрепляю те же самые файлы. (там специальное поле для файлов есть, когда жмешь завершить проект)
    - ???
    - Profit

    Зачем отсылать файлы 2 раза?
    1) Заказчику удобнее получить файлы сразу на почту\skype, он не хочет заморачиваться и искать их где-то. Поэтому отсылаем ему напрямую.
    2) Во время завершения заказа нужно прикрепить файлы, чтобы в случае чего, саппорт видел что я сделал, и почему я должен получить за это оплату.
    Ответ написан
    2 комментария
  • Какую предоплату давать исполнителю?

    Denormalization
    @Denormalization
    Не знаю как на fl.ru, но на адекватных биржах (Elance), вся работа идет только через escrow.
    Заказчик заносит всю сумму в escrow, и я спокойно могу делать работу, зная что она будет оплачена (даже если заказчик пропадет).

    Если сумма большая, и нету желания платить сразу всё, то проект разбивается на milestones, и каждый оплачивается отдельно.

    Какой вообще смысл работать без предоплаты? Кто на это согласится? Если это не проект за 50$, то только через escrow, и работа начинается только после того, как заказчик внесет деньги.
    Ответ написан
    Комментировать
  • Для чего нужен pdo rollback?

    Denormalization
    @Denormalization
    Each transaction is stored in the binary log in one chunk, upon COMMIT. Transactions that are rolled back are not logged.


    Rolling back can be a slow operation that may occur implicitly without the user having explicitly asked for it (for example, when an error occurs).


    Beginning a transaction also causes table locks acquired with LOCK TABLES to be released


    От сюда
    Ответ написан
    Комментировать
  • Как лучше организовать структуру js в laravel?

    Denormalization
    @Denormalization
    В Laravel есть elixir, который является удобным сборщиком для sass/coffee и других препроцессоров, а так же позволяет легко минифицировать\сжимать css/js.
    Стоит использовать его.
    Ответ написан
    7 комментариев
  • Насколько весомым является влияние знания регулярных выражений на трудоустройство PHP developer?

    Denormalization
    @Denormalization
    junior:
    /(.*)/
    middle:
    /[^a-c]+([y-z]+?)/
    senior:
    (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*))*)?;\s*)
    Ответ написан
    5 комментариев
  • Как добавить суффикс .html к url в Laravel 5.1?

    Denormalization
    @Denormalization
    $router->get("super/route.html', [...]);

    Или что-то другое имелось ввиду?
    Ответ написан
    Комментировать
  • Какой дистрибутив выбрать?

    Denormalization
    @Denormalization
    Не нужны никакие дистры на основе Arch. Нужно самому его 1 раз поставить и всё. Это ничуть не сложнее чем в винде Next->Next->Next.
    Настройка займет пару выходных, зато потом всё ок будет.

    Судя по вопросу тебе не дистр нужен, а красивый DE. Выбирай любой дистр и ставь туда всё что угодно.
    Ответ написан
    5 комментариев
  • Как работает скролл на сайте газпрома?

    Denormalization
    @Denormalization
    Там ширина контейнера 1850px + используется jQuery animate scrollLeft
    Ответ написан
  • Как вы обрабатываете GET запросы?

    Denormalization
    @Denormalization
    Ужс..
    Это даже не индусокод...

    Используй type cast (int) + mysqli + prepared statements.

    Убери эту лапшу из if'ов.
    Просто используй:
    $category_id = (int)arr_get($_GET, 'category', 1);
    $id = (int)arr_get($_GET, 'id', 0);
    
    function arr_get(array $array, $key, $default = null) {
        return isset($array[$key]) ? $array[$key] : $default;
    }
    Ответ написан
  • Как защитится от зеркалирования сайта?

    Denormalization
    @Denormalization
    Никак от этого не защитишься.
    Сам лично писал несколько подобных "клонирователей" на заказ. Вы ничего не сможете сделать.
    Ответ написан
  • Кто хорошо разбирается с seo? Что скажете?

    Denormalization
    @Denormalization
    90% людей даже vk.com/ok.ru не могут вбить, и ищут "страница входа втентакле".
    Имя домена в 99% вообще никакого значения не имеет, кроме подсветки в результатах поиска.
    Ответ написан
    6 комментариев
  • Как установить не стандартные поля на проверки авторизации в laravel?

    Denormalization
    @Denormalization
    В метод attempt можно передавать что угодно, главное чтобы там было поле password.
    Оно само разберется как это валидировать.

    PS
    Если очень интересно как оно работает, то можно открыть класс Illuminate\Auth\EloquentUserProvider и посмотреть на методы: retrieveByCredentials и validateCredentials
    Ответ написан
    8 комментариев
  • Mail.ru подмена поля from, как это возможно и кто виноват?

    Denormalization
    @Denormalization
    Письмо можно отправить с любого адреса. Протокол так устроен. Всё что ты напишешь в поле "From" - там и будет.

    Просто указывается From: vasya@support.mail.ru
    И в поле Reply-to: petya@hacker.com
    Ответ написан
    6 комментариев
  • Как защитить корпоративный аккаунт google?

    Denormalization
    @Denormalization
    Двухфакторная авторизация на телефон гендира, и выдача кода только под роспись.
    Ответ написан
  • Как доверять фрилансерам?

    Denormalization
    @Denormalization
    Никому не нужны ваши данные. Перестаньте думать, что все вокруг хотят вас обмануть.
    Если бы фрислансеры крали\сливали инфу, то никто бы с ними не работал.

    >Я полагаю что можно перенести магазин на другой сервер, там удалить клиентов и заказы, поменять пароли и можно безопасно нанимать фрилансера.
    Только потом вы будете сами всё переносить и делать все необходимые настройки. И если что-то не будет работать - я пошлю вас далеко, так как работу я сделал.

    Из моего предыдущего ответа на схожий вопрос:
    Вы у врача тоже просите его осмотреть вас в одежде, не вынимания рук из карманов и на расстоянии 20км?
    Ответ написан
    2 комментария
  • Идет ли какое то нарушение идеологии фреймворка когда у контроллера несколько моделей?

    Denormalization
    @Denormalization
    А какая разница какие модели использует контроллер?
    Он как раз для этого и нужен (в общем случае) - чтобы рулить что передавать во view.
    View вообще все равно что в нее передают, она должна просто показать это.

    Я так понимаю, что вопрос появился из-за REST контроллера (index, update, store, ...)? Конечно не стоит делать обновление\вывод модели User в контроллере PostsController, но например вывести посты + связанных юзеров никто не запрещает.
    Ответ написан
    7 комментариев
  • PSR, как быть с однострочными условиями?

    Denormalization
    @Denormalization
    PHPStorm с настройками PSR-2 обрамляет в {} однострочные выражения. Т.е:
    if ($a) {
        return $b; 
    }


    Так что думаю лучше обрамлять.
    Ответ написан
    1 комментарий