Может войдёшь?
Черновики Написать статью Профиль
Proger_XP

Proger_XP +208

Вступил в наши ряды: 9 апреля 2012

Замечен в последний раз: 6 августа 2017

Оставил на форуме: 1 114 сообщений и 11 тем

Последнее сообщение: 1 день назад

Сайт: laravel.ru

GitHub: ProgerXP

Вы сможете отправить письмо, если войдёте

Статьи (33)

Обновление на Laravel.ru

laravel.ru

  1. 1. Плашки
    1. 1.1. /packages/proger/habravel/badges/master-icon.png Мастер
    2. 1.2. /packages/proger/habravel/badges/writer-icon.png Писарь
    3. 1.3. /packages/proger/habravel/badges/translator-icon.png Толмач
    4. 1.4. /packages/proger/habravel/badges/nomarkup-icon.png ББ-Тролль
  2. 2. Про рейтинг
  3. 3. Панель BB-кодов и быстрое цитирование
Плашки

Система рейтинга пользователей и постов существует уже года два, но она не слишком заметна. Сегодня к ней добавились значки/плашки за особые заслуги (как в плюс, так и в минус).

Плашки показываются рядом с каждым сообщением пользователя на форуме (над аватаром, если он есть) и в профиле пользователя.

Два шаблона проектирования, которые сделают ваши приложения лучше

перевод

Применение шаблонов проектирования на практике может вызывать некоторые сложности. Представьте себе ситуацию. Маленький ребенок, интересующийся техникой, играет в игрушечные машинки. Тут подходим мы, и предлагаем ему начать проектирование и строительство автозавода по производству автомобилей (это именно то состояние, в котором я находился, когда меня не очень учтиво ввели в тему шаблонов). Но это не должно быть нашей на них реакцию. Данное руководство о двух шаблонах поможет вам существенно улучшить структуру вашего приложения и шаг за шагом постигать и внедрять новые технологии.

Шаблон репозитория

Хранилище является…

REST API в ваших пакетах

перевод

Зачастую у вас появляется желание предоставить вашим пользователям разные способы взаимодействия с вашим пакетом. Обыным решением является создать REST API к вашему пакету для обработки данных.

Изначально, я хотел получить приятный одностраничный интерфейс для Laravel-FAQ. Для этого в рамках подготовки к этому я работал над созданием гибкого REST API, который позволит добавлять реализованный функционал, когда мне это понадобиться…

Шаблон проектирования "Репозиторий" в действии

перевод

Две недели назад я обсуждал статью «Два шаблона проектирования, которые сделают ваши приложения лучше». После этого появился огромный интерес к демонстрации шаблона «Репозиторий» в действии. Сегодня мы посмотрим, как репозиторий подходит для Laravel Faq Page.

Просто говоря, репозиторий — это абстрактный слой между каким-либо хранилищем и вашим приложением или бизнес-логикой. Это примерно то же, как если бы вы могли подойти к полке для книг и взять нужные из них одним движением руки. Итак, давайте посмотрим на задачи…

Интервью с Jeffrey Way (2013)

перевод

Если вы читаете наш сайт какое-то время, то вы знаете, кто такой Джеффри Вэй. Он — миф и легенда, первый человек в развитии сайта Nettuts+ и влиятельный голос в сетевом сообществе разработчиков. И сейчас он энергично берется за обучающие он-лайн курсы на Tuts+.

Нам захотелось поймать Джеффри и узнать, как же проходит его очередное большое приключение. Давайте выясним это.

Вопрос: Читатели хотят знать, где же на самом деле Джеффри Вэй?

У Laravel появятся платные премиальные компоненты

перевод

Оригинальная статья была опубликована 5 января 2014 года — прим. пер.

Taylor Otwell — непосредственный автор и руководитель проекта Laravel — вчера неожиданно заявил, что следующая версия Laravel (4.2) станет придерживаться модели «freemium» для некоторых «не критичных» компонентов. По его словам:

Ядро фреймворка должно включать только компоненты, которые нужны большинству веб-приложений. Но как быть с тем, что нужно многим из нас? Есть кое-каких отличные компоненты, которые я хочу создать за следующие 5 месяцев…

Тейлор: "Объединяя PHP"

перевод

В течении последних нескольких недель шли активные дискуссии на тему сообщества PHP, пакетов и «фракций». Поэтому я решил высказать свою точку зрения на эти вопросы. На сегодняшний день Laravel — самый полноценный эклектичный PHP-фреймворк из всех существующих. Другими словами, Laravel — единственный полноценный фреймворк, который активно борется против фракций (разработки библиотек, подходящих под использование только в определённой среде — прим. пер.).

Laravel, в дополнение к своим собственным библиотекам вроде Eloquent и Blade, также включает целых 23 пакета из открытого сообщества…

Ответ Тейлора на статью "Не используйте фасады"

перевод

Сегодня после обеда на Reddit появилась статья, которая предостерегает пользователей Laravel от использования так называемых «фасадов» (шаблон проектирования в ООП — прим. пер.).

В случае с Laravel, фасады — это то, что используется, когда вы делаете, на первый взгляд, статический вызов метода класса. Например:

PHP
Route::get('/''HomeController@showWelcome');

Eloquent - выборка, добавление и изменение записей

перевод

Eloquent — это название для очень гибкой и выразительном ORM-системы, входящей в состав Laravel. ORM обозначает Объектно-ориентированное представление — способ доступа к вашим таблицам БД, как будто это объекты. В двух словах, это очень классно.

ORM позволяет разрабатывать приложения быстрее и, если это качественная…

Защита данных - шифрование в Laravel

перевод

Иногда вам нужно защитить свои данные. В Laravel для этого есть два метода: одностороннее и двустороннее шифрование. Посмотрим на них подробнее.

Одностороннее шифрование

Одностороннее шифрование — лучший способ для сохранения паролей или других важных пользовательских данных. «Одностороннее» значит, что вы можете преобразовать данные в зашифрованную строку, но благодаря запутанным алгоритмам и высшей математике обратное преобразование не возможно.

С помощью этого вы можете легко хранить пароли ваших пользователей — им не нужно волноваться о том, что вы…

Есть ещё статьи

Комментарии (79)

Proger_XP

Некоторые люди не понимают слов.

Proger_XP

Статье пять лет, дата публикации — 21 мая 2012. Она относится к Laravel 3.

Proger_XP

В данном случае проблема не перевода, а того, что сама статья была удалена из документации Laravel 5.3 и выше. О чём и написано в самом начале:

  1. Данная статья документации актуальна только для версий 5.2 и 5.1 и была удалена в версии 5.3.

Поэтому она и отстаёт.

Proger_XP
  1. Это мой первый пост на форуме, понимаю, что вопрос относиться к категории faq для чайников, но такового не нашёл

Это не форум, это статьи. Форум по ссылке сверху.

Proger_XP

Из поля в форме, которое генерируется PHPcsrf_field().

Proger_XP

Специально для самых внимательных в начале статьи выделено:

Данная статья документации актуальна только для версий 5.2 и 5.1 и была удалена в версии 5.3.

А вопросы лучше задавать на форуме.

Proger_XP

Google замечательно показывает «закрытые» страницы даже в обычном поиске без site: — а вот вместо вырезки со страницы (под заголовком и URL) он действительно пишет «содержимое страницы закрыто robots.txt».

Очень часто натыкаюсь на подобные результаты, по-моему со Stack Overflow.

Proger_XP

Какие из современных поисковиков учитывают robots.txt? Google — его игнорирует уже давно.

Proger_XP

Действительно, это основы Linux...

~ это домашняя папка (/root, /home/user), а .file — скрытая папка/файл, показывается не через shls, а через shls -a («all»).

p.s: «папка» короче, чем «директория».

Proger_XP
  1. Решается это очень просто — мета тегом canonical. Это единственный правильный путь решения данного вопроса.

Однозначно плюсую. Это единственный и идеальный способ решения всех проблем с «зеркалами».

Proger_XP
  1. чтобы не «насиловать» сервер в случае DDOS

О, ну это просто отговорка — в любом веб-приложении тонна мест, где можно получить DDoS: та же авторизация по определению требует тяжёлых вычислений хэша, или фильтр каких-нибудь товаров, который не может покрыть все поля индексами. А некоторые типы атаки (на канал) вообще не требуют никаких действий от сервера, ими можно завалить даже отдачу статики, безо всяких PHP. Конечно, специально создавать бутылочные горлышки не нужно, но именно защищаться от DDoS нужно на другом уровне (сетевом).

  1. в любом случае COUNT будет быстрее SELECT

Это спорно и зависит от типа запроса. Например, если в запросе нет ORDER B Y, то SELECT от SELECT с COUNT отличается только тем, что первый передаёт данные по сети, а второй нет. Если БД стоит на том же сервере, что и PHP — накладные расходы на копирование данных через память минимальны, зато сложный WHERE выполняется в обоих запросах дважды, что в зависимости от настроек БД и доступной памяти может не кэшироваться.

ИМХО, в первую очередь код должен быть кратким и «красивым» (последнее субъективно). Остальное это предоптимизация, которая обычно приносит больше проблем, чем пользы.

Proger_XP
  1. PS: лучше код гляньте, скажите — правильная ли реализация или я что-то не учел или мог бы сделать лучше?

Явных проблем не вижу, но есть два момента, из-за которых вы делаете два запроса вместо одного.

PHP
if (count($this->query) > 0) {

Это может вызывать повторный запрос, т.е. внутри paginator будет делаться два запроса (нужно проверить).

PHP
$items Article::filtered();
$total $items->count();
...
$items $items->skip(($page 1) * $per_page)->take($per_page)->get();

Здесь вы вначале делаете запрос с COUNT, дальше без, но с LIMIT. А зачем первый запрос вообще нужен? Ведь вы после второй выборки уже имеете массив; если он пустой — значит, PHP$page слишком велика и нужно выдавать 404 (по вашей логике). Нет смысла дополнительно вначале проверять общее число записей в таблице, это можно определить из второго запроса.

Proger_XP

ИМХО, это не может быть так — «зеркала» можно создать на любом сайте вообще без усилий, добавив любой параметр к URL (...?foo=bar); с «пустышками» сложнее, но тоже реально. Если такие проблемы и были, то когда-то давно, в то же время, когда URL были «обязаны» с точки зрения SEO иметь расширение .html, а JS-страницы не индексировались вообще.

Proger_XP
  1. К слову, эти же огрехи применимы и к текущей версии Habravel:

Потому что Habravel (внезапно) написан на Laravel, а автор описывает общую «проблему» Laravel. Не знаю, насколько это именно проблема в SEO, ИМХО, поведение логичное и поисковики его должны учитывать.

Proger_XP

Документацию уже частично обновили до 5.3, до 5.4 обновим в течении месяца-двух.

На этом сайте можно публиковать статьи после регистрации, так что хотите помочь — переводите и публикуйте, никто не мешает.

  1. Я «за», чтобы автор перевода ввёл развёрнутые пояснения для новичков в некоторых моментах.

Это перевод официальных английских доков с laravel.com, так что претензии надо направлять к ним.

Proger_XP
  1. жутко много шума

В смысле прыжков по фасадам, которые передают вызовы в другие классы? С этим ничего не сделать, это идеология ядра Laravel. Лично мне это тоже крайне мешает отлаживать проекты отладчиком.

Proger_XP

Шестой пункт (про наставника) выглядит притянутым за уши — есть люди, которым наставник противопоказан и они гораздо лучше во всём разбираются сами. Я сам такой. А остальные пункты дельные и, на мой взгляд, подходят для каждого.

Proger_XP
  1. но и свою предыдущую, которую многие посчитали полезной.

Да, вот это определённо зря, первая статья действительно была многим очень полезна. В твоей статье ничего обидного нет, наоборот, всё объяснено и затрагивает частую проблему.

Proger_XP

Автор исходной статьи «Автозагрузка пространства имён в Laravel 5.3» решил её выпилить, так что не ищите...

Proger_XP

Да, вот это именно то, что нужно. Подробное описание со ссылками на доки.

ИМХО, вариант с изменением файлов Composer напрямую намного трудозатратней, чем собственно правильное решение — 90% пакетов уже и так на GitHub, у 90% разработчиков там тоже есть аккаунт, поэтому тыкнуть Fork и поменять URL в composer.json это дело двух минут. А через энное число дней, когда уже забыл про свои правки в vendor, не придётся биться головой об стену, пытаясь понять, с чего вдруг всё сломалось, и тратить время на поиски пакета, который внезапно «стал несовместимым».

p.s: очень много ошибок в пунктуации — я исправил, но не забывай про запятые, иначе сложно читать.

Ещё больше отзывов