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

Proger_XP +345

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

Замечен в последний раз: 27 ноября 2024

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

Последнее сообщение: 1 апреля 2022

Сайт: 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 для этого есть два метода: одностороннее и двустороннее шифрование. Посмотрим на них подробнее.

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

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

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

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

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

Proger_XP
  1. А так как и Laravel, и сторонние компоненты для него пишутся в первую очередь для веб, то и надеяться особо не на что :)

Это верно, но меня напряг твой исходный тезис, что «[сам] PHP ещё неидеально подходит [...]» — все же это не так. Об этом и написал.

В частности, из верной предпосылки можно вывести следствие, что если наблюдаются утечки — достаточно переписать часть кода на голом PHP, чтобы их избежать. (А из неверной — что нужно все срочно переписывать на Python или, там, на Node.js. Да, я видел такое.)

Но, вообще, к теме статьи (очередям) это имеет мало отношения, потому что, как ты тут же и пишешь — скрипт все равно нужно регулярно перезапускать из-за изменения кода, и проще всего не каждую задачу обрабатывать в цикле внутри PHP, а иметь внешний цикл (bash, cron, supervisord, systemd, etc.), который будет запускать PHP «с нуля» для обработки только одной задачи. В этом случае утечки не страшны.

Proger_XP
  1. На сегодняшний день PHP ещё неидеально подходит для создания постоянно работающих демонов. Есть проблемы с утечкой памяти. Ситуация улучшается с новыми версиями, но пока совсем не исправилась. Поэтому воркер может забирать всё больше и больше памяти, пока не исчерпает всю доступную.

Да ладно, всё у PHP нормально со сборкой мусора уже лет 10 как. Проблема в программистах на PHP, которые привыкли, что он «умирает» (что, кстати, весьма практично, но на Rails, например, такой код уже не прокатит). И в Laravel (как следствие из первого). На форуме недавно всплывал подобный вопрос.

  1. Стандартно проблему слежения за наличием демона и перезапуск его при нужных условиях обеспечивают с помощью supervisor.

Та не нужон вам Supervisor, если вы не работаете в контейнере (Docker). В современных дистрибутивах (Debian, Ubuntu, CentOS, etc. etc.) идёт systemd (а вот cron — не везде), в нем это решается на раз-два:

artisan-queue.service

conf[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/usr/bin/php /path-to-your-project/artisan schedule:run
Restart=always
User=www-data
WorkingDirectory=/path-to-your-project
shcp artisan-queue.service /etc/systemd/system/
systemctl enable artisan-queue
systemctl start artisan-queue

Что получаем:

  • запуск действительно без зависимостей и сравнительная кросс-дистрибутивность (даже в Docker можно systemd запустить)
  • логгирование в общий системный лог из коробки (который можно тянуть на другую систему, фильтровать/объединять/бекапить и прочее)
  • стандартные средства управления и мониторинга (systemctl)
  • автоматический перезапуск
  • плюшки безопасности (в моем примере не показано, но легко настраивается Chroot и прочее)
  • к сервису легко навешивается таймер (artisan-queue.timer), делая его полным аналогом cron

Всем хоть немного сисадминам просто жизненно необходимо освоить systemd, это после зоопарка других init просто манна небесная.

  1. shphp artisan schedule:run >> /dev/null 2>&1

Для справки: вместо двух длинных перенаправлений достаточно написать:

shphp artisan schedule:run &>/dev/null
Proger_XP
Proger_XP
  1. В прошлый раз я написал на форуме, сказали отправить в статью)

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

Proger_XP

Для подобного рода объявлений место на форуме.

Proger_XP

Автор-то американец и исправно выпускает обновления, а вот переводчиков на русский раз два и обчелся.

Proger_XP
  1. Неужели любому клиенту, который попросит те или иные права, они ему так просто присваиваются.

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

Proger_XP

Верно, в переводе ошибка. Спасибо за сообщение.

Proger_XP
  1. А может вы еще и от AR отступились?

Мне кажется, вы вообще коммунист.

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

Proger_XP

Отличная статья, и написана хорошо (только в заголовках не принято ставить точки в конце, лучше это исправить).

Однако раз текст претендует на «beyond junior», т.е. на уровень повыше начинающего, то надо предупредить о том, что чрезмерное размазывание кода по разным сущностям — это такое же зло, как и пихание всего в один класс (контроллер в данном случае).

К сожалению, известные мне фреймворки поощряют и то, и другое, причём сложно сказать, какое из зол меньше — при размазанном коде много времени тратится на поиск того, где все-таки выполняется код (чем грешит и сам Laravel со своей тучей фасадов и IoC).

Как всегда, никакие практики и принципы не заменяют собственной головы на плечах.

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 — его игнорирует уже давно.

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