Переломный момент в истории российской веб-разработки впервые Laravel обогнал Yii по количеству


Оглавление (нажмите, чтобы открыть):

Сравнение PHP фреймворков: Yii и Laravel

Много лет назад наша фирма нашла довольно крупный проект. Портал по недвижимости. Приложение предполагалось нагруженное, и поэтому возникла задача найти подходящий производительный фреймворк. На тот момент у меня было совсем мало опыта, работал я разве что с CMS. Но для этого проекта CMS нам не подходила — планировалось много нестандартных компонентов. К тому же, работать с CMS мне совершенно не нравилось по причине сумбурности кода в них. При необходимости в исходниках было очень сложно разобраться. Я занялся исследованием вопроса, прочитал множество сравнительных статей, обзоров, отзывов о передовых на тот момент фреймворках в Интернете. В результате выбрал Yii. Решающим фактором стала отличная документированность, куча обсуждений на форумах, популярность и, как следствие — низкий порог вхождения.

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

Теперь, много лет спустя, на одном из новых проектов я познакомился с завоёвывающим всё большую популярность фреймворком Laravel. Скажу сразу: разрабатывать было неудобно, но я знал — это неизбежно при изучении чего-то нового. Отмечу, что при всей лаконичности документации, мне не хватало более детального описания мелочей, из-за этого нередко приходилось лезть в исходники. А так как Laravel отличается от Yii большим количеством абстракций, то исполняемые методы найти было не так-то просто. В целом, Laravel мне показался похожим на Yii в плане использования, просто методы реализации отличаются и поэтому нужно с ними разбираться. Что-то было сделано более удобно, что-то — наоборот, вызывало приступы неисчерпаемого гнева. С этого и начнём наше небольшое сравнение.

Описание

Первое впечатление складывается под влиянием описания на главной странице официального сайта. Посмотрим, что могут предложить и чем могут похвастаться фреймворки (на момент написания статьи):

Yii 2

Yii — высокопроизводительный PHP фреймворк для быстрой разработки современных web приложений. Его возможности позволяют реализовывать крупномасштабные проекты типа форумов, порталов, CMS, RESTful web сервисов и пр.

  • Как и у большинства фреймворков, в основе Yii — MVC паттерн (Модель-Представление-Контроллер).
  • Философия Yii — простой, но элегантный код.
  • Yii — это full-stack фреймворк, предоставляющий множество проверенных и готовых к использованию решений: построитель запросов, ActiveRecord для реляционных и NoSQL баз данных, RESTful API, многоуровневую поддержку кэширования и много чего ещё.
  • Yii легко расширяем. Вы можете дополнить или переопределить любой кусок базового кода. Также можно писать и собственные расширения.
  • Высокая производительность — основная цель Yii.

Laravel

Laravel — это фреймворк для web приложений с выразительным и элегантным синтаксисом. Он позволит упростить решение основных наболевших задач, таких как аутентификация, маршрутизация, сессии и кэширование. Laravel — это попытка объединить всё самое лучшее, что есть в других PHP фреймворках, а также Ruby on Rails, ASP.NET MVC и Sinatra.

Laravel — доступный, но мощный. Располагает множеством отличных инструментов для крупных, надёжных приложений:

  • Превосходная IoC (Инверсия управления).
  • Удобная система миграций.
  • Интегрированная система модульного тестирования.

Это всё красивые слова, но если сравнить по пунктам — у каждого из фреймворков выявляются и сильные, и слабые стороны. Вообще, сравнивать их — это то же самое, что сравнивать NetBeans IDE и PhpStorm IDE: каждый обладает обширными возможностями, и все они реализованы по-своему. Пока не попробуешь, не поймешь, что лучше для тебя и что больше тебе подходит.

Yii vs Laravel

Чтобы сравнить два инструмента, нужно сравнить предлагаемую каждым из них реализацию популярных возможностей, необходимых для быстрой и качественной разработки. Я постарался выделить основные аспекты:

Параметр сравнения Yii Laravel
Требования PHP 5.4 и выше
  • PHP 5.4 и выше
  • MCrypt PHP extension
  • PHP JSON extension
(Model–view–controller) Да Да
Расширения Поддерживаются Поддерживаются
(объектно-реляционное отображение)
  • Data Access Objects (DAO)
  • Active Record Pattern (ActiveRecord)
  • Doctrine 2 через плагины
  • DAO
  • ActiveRecord Pattern (Eloquent ORM)
  • Doctrine 2 через плагины
Тестирование Из коробки:

  • PHPUnit
  • Codeception
  • PHPUnit из коробки
  • Компоненты Symfony для тестирования (HttpKernel, DomCrawler и BrowserKit)
Отладка
  • Подробный консоль отладки из коробки
  • Логирование разных уровней
  • Логирование запросов к БД
  • Логирование
  • Консоль отладки из коробки со стеком вызовов

Имхо, консоль довольно скудная, зачастую сложно понять из нее вразумительную причину. Проблему можно решить, например, расширением laravel-debugbar.

Миграция Инструмент для миграций (класс Migration)
  • Миграции (класс Migration)
  • Инструмент наполнения данными (класс Seeder)
Безопасность
  • Богатый правилами Access Control Filter (ACF)
  • Role Based Access Control (RBAC) на основе NIST RBAC model
  • Расширения для авторизации по OpenID, OAuth или OAuth2 и пр.

Всё из коробки + плагины. Контроль доступа к компонентам тесно интегрирован с RBAC.

  • RBAC
  • ACL плагины
  • Фильтры (по сути функции) контроля доступа
Шаблонизаторы, работа с шаблонами
  • Официальные Twig и Smarty пакеты
  • Asset’ы для подключения JS, CSS и пр.
  • Плагины
  • На базе PHP
  • Blade
  • Asset’ы для подключения JS, CSS и пр.
  • Плагины
  • Все шаблоны по умолчанию кэшируются
Кэширование
  • APC
  • Database
  • File
  • Memcached
  • Redis
  • WinCache
  • XCache
  • Zend Data Cache
  • APC
  • Database
  • File
  • Memcached (в 5 версии)
  • Redis (в 5 версии)
  • Поддержка JSON, JSONP и XML из коробки
  • Роутинг в соответствии с REST-запросами
  • Поддержка HATEOAS
  • Кэширование запросов
  • Ограничение скорости и пр.
  • Настройка роутинга REST-запросов
  • Поддержка JSON, JSONP и пр.
Локализация приложения Поддерживается Поддерживается Валидация форм Поддерживается Поддерживается
  • Gii (Yii Code Generator) — интерфейс для генерации моделей, CRUD, контроллеров, форм, модулей, расширений
  • Консоль
  • В консоли через Artisan
  • Расширения

Расширения

Собственно, расширений для обоих фреймворков предостаточно, и они есть практически для всего. Вообще это немаловажная составляющая, т.к. все недостатки можно залепить парочкой-другой расширений. Причём они встанут так, как будто так всегда и было.

Миграции

В обоих системах удобные инструменты для миграций, но в Laravel ещё присутствует возможность добавлять сидеры (seeder) для первоначального заполнения базы данными, что будет удобно как при составлении тестов (тестовых данных), так и наполнении статичных справочников. В Yii для этих целей приходится обходиться миграциями.

Безопасность

На самом деле, я бы удивлён, что в Laravel нет достаточного инструментария контроля доступа из коробки. Но, тем не менее, существует большое количество пакетов расширений со своими реализациями. Отмечу, что в обоих фреймворках есть инструменты для работы с паролями, авторизации/аутентификации, защиты от SQL-инъекций, Cross Site Scripting (XSS), Сross Site Request Forgery (CSRF) и пр.

Валидация форм

В обоих фреймворках валидация, конечно, есть, но реализована она по-разному. В Yii она привязана к классу формы или модели. Это позволяет настроить правила прямо в нём, затем после получения данных и заполнения ActiveRecord проверить их согласно правилам. Если, допустим, у нас есть другая форма, которая меняет часть данных модели, то под неё нужно создать свой класс, либо использовать сценарии валидации. Это удобно до тех пор, пока не потребуется валидировать какие-либо значения прямо в контроллере и писать свой кастомный метод проверки, а не использовать методы из коробки. Здесь приходит очередь гордиться Laravel. У него валидатор существует как отдельный класс-помощник и валидирвать данные можно в любом месте в любое время. К тому же, для удобства и общности проверки форм можно расширить класс Eloquent своими методами.

Заключение

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

Какой PHP-фреймворк выбрать: сравниваем Symfony, Laravel и Yii2

В этой статье рассматриваются три наиболее популярных PHP-фреймворка: Symfony, Laravel и Yii2. Автор сравнивает их возможности и пытается помочь читателю выбрать лучший инструмент. Статья предназначена для начинающих разработчиков, которые ещё не работали с PHP-фреймворками.

Зачем нужен PHP-фреймворк

PHP — один из самых популярных и востребованных языков программирования. Его активно используют крупные проекты, например, Facebook и «ВКонтакте». На PHP написаны популярные системы управления контентом (CMS), в том числе WordPress. На этом движке работает около трети всех сайтов в интернете и около 60 % сайтов на CMS.

PHP развивается, а версия 7 сделала этот язык стабильным. В таком случае, зачем нужны фреймворки и почему их часто используют вместо нативного языка? Вот несколько причин:

  • Фреймворки ускоряют разработку. Например, PHP-фреймворк избавляет вас от необходимости писать запросы к базам данных. В фреймворках реализованы базовые функции CRUD, которые необходимы для работы с базами данных.
  • Написанные на фреймворках приложения легко масштабируются.
  • Поддерживать легче проект на фреймворке, чем на нативном PHP. Код фреймворков лаконичный, поэтому с ним просто работать.
  • В PHP-фреймворках используется модель MVC. Она упрощает разработку.
  • Приложения на фреймворках лучше защищены, чем приложения на чистом PHP.
  • В фреймворках реализован принцип DRY. Это позволяет разработчикам писать меньше кода.

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

Как выбрать PHP-фреймворк

Выбрать фреймворк помогут ответы на следующие вопросы:

  • Какая функциональность у фреймворка, соответствует ли она нуждам проекта?
  • Насколько сложно изучать выбранный фреймворк?
  • Легко ли масштабировать проект, созданный с помощью данного фреймворка?
  • Насколько активно развивается инструмент?
  • Есть ли гарантированная долгосрочная поддержка (LTS)?
  • Есть ли активное сообщество?


Symfony, Laravel и Yii2

Перед погружением в детали коротко рассмотрим главные особенности наиболее популярных PHP-фреймворков. Это Symfony, Laravel и Yii2.

Symfony

Symfony представляет собой набор PHP-компонентов, которые подходят для повторного использования. Фреймворк позволяет делать масштабируемые и производительные приложения. API Symfony интегрируется со сторонними приложениями, а также с инструментами для фронтенд-разработки, например, Angular JS.

Symfony используют многие популярные проекты, например, Drupal и phpBB. Даже самый популярный PHP-фреймворк Laravel построен на основе Symfony.

Laravel

По состоянию на середину 2020 года это самый популярный PHP-фреймворк в мире. Текущая стабильная версия — 5.8.10. Популярность Laravel подчёркивает следующий факт: многие хостеры предлагают специальные решения для приложений, созданных с помощью этого фреймворка.

Yii был представлен в 2008 году. Это безопасный, быстрый и производительный фреймворк для разработки веб-приложений. Текущая версия — 2.0.19.

В Yii2 используется пакетный менеджер Composer для управления зависимостями. Благодаря ленивой загрузке Yii2 считается самым быстрым PHP-фреймворком.

Ещё одна особенность Yii2 — интеграция с jQuery. Благодаря этому фронтенд-разработчикам удобно работать с приложениями, созданными на Yii2. Как и в Symfony, в Yii2 используются готовые компоненты. Это ускоряет разработку.

Какой PHP-фреймворк лучше

Все перечисленные фреймворки подходят для разработки веб-приложений. Однако у этих инструментов есть отличия, которые разработчик должен учитывать. Подробности ниже.

Шаблонизаторы

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

Symfony

В Symfony по умолчанию используется Twig. Это обработчик шаблонов, который позволяет писать чистый код и расширяет возможности нативного PHP. Например, Twig упрощает создание экранирующих последовательностей.

Laravel

В этом фреймворке применяется шаблонизатор Blade. Он позволяет использовать код PHP в представлениях. Blade практически не влияет на скорость работы приложений, так как представления хранятся в отдельных файлах с расширением .blade.php . Код представлений преобразуется в нативный PHP.

Этот фреймворк не использует сторонних шаблонизаторов по умолчанию. Но разработчик может выбирать инструменты в зависимости от решаемых задач. В число рекомендуемых шаблонизаторов входят Twig и Smarty.

Промежуточный вывод: по данному критерию чистого победителя нет. Все фреймворки поддерживают работу с шаблонизаторами, что ускоряет разработку фронтенда приложений. Небольшое преимущество имеет Yii2, так как в нём не используется какой-либо шаблонизатор по умолчанию.

Модульность

В Symfony есть стандартные компоненты, которые можно использовать для создания приложений. То есть Symfony — отличный пример модульного фреймворка.

В Yii2 реализован подход MVC. В этом фреймворке тоже есть компоненты, однако модульность реализована не так хорошо, как в Symphony.

Laravel уступает Symfony и Yii2 в возможности использовать модульный подход для разработки приложений.

Промежуточный вывод: если вам нужен модульный PHP-фреймворк, выбирайте Symfony.

Установка

Каждый фреймворк поддерживает несколько вариантов установки. Например, Symfony, Laravel и Yii2 можно установить с помощью пакетного менеджера Composer. Все фреймворки после установки позволяют работать с шаблонным приложением.

Промежуточный вывод: по критерию простоты установки победителей нет, каждый из трёх инструментов легко устанавливать.

Скорость разработки

Symfony считается надёжным фреймворком, за которым стоит многочисленное и активное сообщество. Laravel быстро развивается и удерживает первое место в списке самых популярных фреймворков. Yii2 обеспечивает производительность приложений.

Если вам нужно как можно быстрее создать веб-приложение, и вы никогда не работали с PHP-фреймворками, выбирайте Laravel. Его проще всего изучать, и в сети больше всего руководств именно по Laravel.

Производительность

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

Производительность Laravel — дискутабельный вопрос. По этому критерию он уступает Yii2 и Symfony. Тем не менее в сети можно найти много рекомендаций по ускорению приложений на Laravel.

Поддержка баз данных

По этому критерию бесспорным лидером становится Symfony. Yii2 и Laravel отстают. Конкретную информацию можно увидеть в таблице.

Laravel Yii2 Symfony
Microsoft BI Microsoft BI Apache Jackrabbit
MongoDB MongoDB CouchDB
MySQL MySQL DynamoDB
PostgreSQL PostgreSQL GraphDB
Redis Redis MemBase
SQLite SQLite MemCasheDB
Microsoft BI
MySQL
MongoDB
NoSQL
Oracle
PostgreSQL

Сообщество и ресурсы

Многочисленное активное сообщество можно считать гарантией долгосрочной поддержки и развития инструмента. Вокруг рассматриваемых фреймворков сформированы большие сообщества. Комьюнити Symfony можно назвать наиболее зрелым.

Важный момент — будущее фреймворка лучше оценивать не по статичной величине сообщества, а по его динамике и активности.

Если оценивать такой ресурс, как документацию и обучающие материалы, здесь лидером будет Laravel.

Расширяемость

Функциональность фреймворков увеличивается с помощью расширений или пакетов. По этому критерию лидером остаётся Laravel. В каталоге Packalyst можно найти около 9000 пакетов для Laravel.

Yii2 и Symfony могут похвастаться 2800 и 2830 расширениями соответственно. Если для вас важна возможность расширить стандартную функциональность фреймворка с помощью дополнительных пакетов, выбор очевиден.

Схожесть характеристик

Выше мы рассматривали разницу между фреймворками. Пришло время сосредоточиться на похожих характеристиках. Вот они:

  • Все три инструмента относятся к fullstack-фреймворкам. Они обеспечивают полный цикл разработки веб-приложения, включая фронтенд и бэкенд.
  • Это проекты с открытым исходным кодом, который можно найти на GitHub.
  • За Symfony, Laravel и Yii2 стоят многочисленные активные сообщества.
  • Все три фреймворка поддерживают объектно-реляционное отображение (ORM). Поэтому эти инструменты удобно использовать в парадигме объектно-ориентированного программирования.
  • Перечисленные фреймворки представляют собой надёжные и безопасные инструменты для создания веб-приложений.

Всё ещё не можете выбрать фреймворк? Вот тезисная информация, которая поможет определиться.

  • есть LTS версии фреймворка;
  • широкая функциональность из коробки;
  • это самый стабильный фреймворк;
  • есть готовые компоненты, что позволяет использовать при создании приложений модульный подход.
  • поддерживает Ajax;
  • обеспечивает быстродействие и производительность приложений;
  • легко расширяемый фреймворк;
  • есть встроенный обработчик ошибок;
  • подходит для разработки веб-сервисов, построенных с учётом REST (RESTful web-service).
  • самый популярный PHP-фреймворк;
  • есть встроенный пакетный менеджер Composer;
  • поддержка юнит-тестирования из коробки;
  • большое количество пакетов для расширения функциональности.

Заключение

Symfony, Laravel и Yii2 можно назвать отличными инструментами для разработки веб-приложений. Автор оригинальной статьи предпочитает Laravel. В то же время он считает Symfony и Yii2 не менее мощными инструментами. Особенностью Symfony можно назвать развитое сообщество, а особенностью Yii — надёжность и безопасность.

Пожалуйста, напишите в комментариях, какой PHP-фреймворк выбираете вы.

Адаптированный перевод статьи Michael J. Garbade How to choose a PHP framework. Мнение автора оригинальной публикации может отличаться от мнения администрации и сотрудников Хекслета.

Россия: рейтинг разработчиков на Laravel


Найти компанию-разработчика с навыками работы на Laravel в России нетрудно. WADLINE поможет найти надёжного и опытного исполнителя в регионе Россия. На этой странице вы найдёте рейтинг с лучшими компаниями России, которые работают с Laravel. Отзывы клиентов, детальная информация о компаниях, ключевые навыки, портфолио и матрица лидеров помогут сделать верный выбор в пользу того или иного разработчика на Laravel. В нашем рейтинге вы сможете найти компанию в России, которая выполнит ваш проект на той системе управления контентом, которую вы выберете. Вы можете заказать разработку на Laravel у любой компании в нашем списке ТОП 10+ лучших разработчиков.

Лучшие Laravel разработчики России

  • Реклама и маркетинг
  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • Bitrix
  • Брендинг
  • Email маркетинг
  • App Marketing
  • Контекст
  • Контент-маркетинг
  • Digital маркетинг
  • SMM

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Разработка мобильных приложений
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Дизайн
  • Веб-разработка
  • Брендинг
  • Digital маркетинг
  • SEO
  • Дизайн логотипа
  • VueJs
  • Startup
  • Laravel
  • YII

Средняя стоимость проекта:

  • Реклама и маркетинг
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • Bitrix
  • Контекст
  • Дизайн мобильных приложений
  • UX/UI дизайн
  • Laravel
  • WordPress
  • PHP

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Разработка мобильных приложений
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка

Средняя стоимость проекта:

  • Bitrix
  • Брендинг
  • Контекст
  • PR
  • Digital маркетинг
  • Дизайн логотипа
  • Графический дизайн
  • UX/UI дизайн

Средняя стоимость проекта:

  • October CMS
  • Графический дизайн
  • UX/UI дизайн
  • Laravel
  • WordPress
  • Bootstrap
  • PHP

Средняя стоимость проекта:

Средняя стоимость проекта:

  • Реклама и маркетинг
  • Дизайн
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Разработка мобильных приложений
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Веб-разработка

Средняя стоимость проекта:

Средняя стоимость проекта:

  • Реклама и маркетинг
  • Разработка программного обеспечения
  • Дизайн
  • Веб-разработка
  • Bitrix
  • Брендинг
  • Локальный маркетинг
  • Email маркетинг
  • Контекст
  • Digital маркетинг
  • SEO
  • Laravel

Средняя стоимость проекта:

Россия / Великий Новгород

  • Дизайн логотипа
  • Графический дизайн
  • Дизайн мобильных приложений
  • UX/UI дизайн
  • SQL
  • Custom CMS
  • Laravel
  • Zend

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Веб-разработка

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • Bitrix
  • Брендинг
  • Печатный дизайн
  • Дизайн логотипа
  • Продуктовый дизайн
  • Графический дизайн
  • Дизайн мобильных приложений
  • UX/UI дизайн


Средняя стоимость проекта:

  • Разработка программного обеспечения

Средняя стоимость проекта:

Средняя стоимость проекта:

  • Реклама и маркетинг
  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • Bitrix
  • Брендинг
  • Email маркетинг
  • Digital маркетинг
  • UX/UI дизайн
  • Laravel
  • WordPress
  • Bootstrap

Средняя стоимость проекта:

  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • October CMS
  • Bitrix
  • Брендинг
  • Digital маркетинг
  • SMM
  • SEO
  • Laravel
  • OpenCart

Средняя стоимость проекта:

  • Реклама и маркетинг
  • Разработка программного обеспечения
  • Дизайн
  • Разработка мобильных приложений
  • Веб-разработка
  • Брендинг
  • Локальный маркетинг
  • App Marketing
  • Контекст
  • Контент-маркетинг
  • PR
  • Digital маркетинг
  • Market Research

Laravel — лидер среди PHP фреймворков, одобренный разработчиками

Дата публикации: 2020-10-10

От автора: PHP — наиболее популярный в мире серверный скриптовый язык. Он прошел большой путь развития от небольших, встраиваемых в код статических HTML страниц, сниппетов, до современного языка, на котором разрабатывается большинство современных динамических сайтов. Сложность и функциональность современных сайтов только возрастает, и ни у кого нет желания писать весь необходимый код с нуля. Программистам необходимо разрабатывать сложные сайты и веб-приложения, а это обычно занимает очень много времени. Чтобы облегчить процесс разработки программистам, начали создаваться фреймворки.

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

большая экосистема с мгновенным разворачиванием своей платформы. Официальный сайт предоставляет множество мануалов и информации для ознакомления;

документация Laravel близка к совершенству;

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

у Laravel есть свой движок для шаблонов Blade, «красивый» синтаксис языка, который способствует решению всех необходимых задач, таких как аутентификация, сессии, кэширование и маршрутизация RESTful.

Несмотря на свою молодость (первый релиз вышел в 2011 году), это уже совершенно зрелый продукт, и, согласно опросу, проведенному порталом SitePoint, он занимает первое место по популярности среди разработчиков на PHP.

Популярность фреймворка Laravel

Для того чтобы оценить популярность фреймворка, предлагаю обратиться к нескольким источникам статистики использования. Статистика популярности от Sitepoin за 2015 год.

Популярность по статистике запросов, которую предоставляет Google Trends.

Как видно из графиков и статистики от SitePoint, а также статистике Google Trends, фреймворк Laravel занимает уверенное первое место и постоянно набирает популярность, не сбавляя обороты. Что, в общем, очень хорошо, учитывая, что это общемировая статистика.

Если мы возьмем статистику запросов в Google Trends по России, то картинка несколько изменится:

Но из графика очевиден факт, что на протяжении последних 4 месяцев фреймворк Laravel удерживает позиции лидера и продолжает набирать популярность.

Это значит, что большинство новых проектов в стране теперь создаются с использованием активно-развивающегося Laravel. Учитывая тренды, если вы давно хотели начать учить Laravel, то сейчас тот самый момент, когда это пора сделать.

Возможности Laravel

Пакеты — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей.

Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent.

Логика приложения — часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов.
Обратная маршрутизация связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные URL.

REST-контроллеры — дополнительный слой для разделения логики обработки GET- и POST-запросов HTTP.

Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются.

Составители представлений — блоки кода, которые выполняются при генерации представления (шаблона).
Инверсия управления — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек.

Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения.

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

Страничный вывод — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel.

Особенности фреймворка

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

Dotenv

Где вы храните секретную информацию вашего приложения, такую как пароль от БД, логин для email и другие вещи? Laravel 5 использует хорошо известный файл .env, который также используют многие фреймворки для других языков программирования. Это файл, в котором вы определяете пары ключ-значение для любой вашей секретной информации.

Laravel — первый фреймворк, поддерживающий PSR-4. Прямо из коробки Composer автоматически загрузит все классы из каталога app, используя стандарт автозагрузки PSR-.

Это значит, что у вас может быть одно пространство имён для вашего приложения, и вы можете структурировать его, как захотите, и как посчитаете логичным. Laravel не требует от вас размещения определённых файлов в определённых папках.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

IoC-контейнер — расширения ядра

Контейнер обратного управления в Laravel — мощный инструмент для управления зависимостями классов. Внедрение зависимостей представляет собой способ снятия жестко закодированных зависимостей класса. Вместо этого зависимости внедряются во время выполнения, обеспечивая большую гибкость, так как реализация зависимостей может быть легко изменена.

Вы можете использовать IoC-контейнер в вашем приложении, чтобы сделать всё внедряемым и легко тестируемым с помощью объектов-заглушек. IoC-контейнер может извлекать классы без какой-либо настройки.

Запросы форм

В Laravel есть восхитительная возможность, которая называется запросами форм. Это проверка запросов для ваших контроллеров. Это не просто проверка данных, а полная обработка запроса.

Eloquent

Eloquent ORM, включённая в Laravel, — наиболее мощная реализация шаблона ActiveRecord в PHP. Кроме обычных CRUD-операций, в ней есть мягкое удаление, области запросов, отношения, методы доступа и мутаторы, мутаторы дат, наблюдатели модели и многое другое.


Цикл версий

У Laravel очень предсказуемый цикл версий. Через каждые шесть месяцев можно ждать очередной версии. Laravel выходит через один месяц после выхода Symfony.

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

SSH задачи

В Laravel есть простой способ для SSH-подключений к удалённым серверам и запуска команд, что позволяет вам легко создавать задачи, которые работают на удалённых серверах.

Flysystem

Flysystem — восхитительный пакет из Лиги выдающихся пакетов для управления файловыми системами. Это файловая система, использующая коннекторы, с помощью которой вы легко можете взаимодействовать с local, awss3, dropbox, rackspace и другими файловыми системами в облаке.

Если вы пользовались новейшими технологиями для фронтенда последние несколько лет, то, вероятно, вы использовали препроцессор для ваших файлов CSS и JavaScript. Но если нет, то Laravel об этом позаботится.

Вам нужна максимально оптимизированная онлайн-версия вашего приложения. Это значит, что вам надо уменьшать и комбинировать ваши файлы CSS и JavaScript.

Вместо использования для этого каких-либо PHP-пакетов, Laravel предлагает пакет Elixir для исполнителя задач NodeJS Gulp. Поэтому вы можете использовать все те преимущества NodeJS и Gulp, которые вам нравятся.

Вы запускаете Gulp-задачу watch, и Elixir позаботится обо всём для вас. Если вы используете LESS и CoffeeScript:

compiled.php

Любой полнофункциональный фреймворк загружается с тысячей файлов и объявлений. По большей части, все они обрабатываются автозагрузкой Composer, но для наиболее используемых файлов Artisan может создать файл compiled.php, который загружается при каждом запросе и объединяет все классы, используемые в вашем приложении.

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

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

Когда вы захотите повысить производительность вашего PHP-кода, вы можете сменить PHP-окружение на высокооптимизированную среду исполнения для PHP от Facebook — HHVM.

Laravel — один из первых фреймворков, поддерживающих HHVM, и он проходит 100% юнит-тестов на HHVM. Поэтому вы можете быть уверены, что легко можете переключить ваше приложение с PHP на HHVM и получить ещё больше производительности.

Cashier

Laravel Cashier обеспечивает выразительный, гибкий интерфейс для услуг биллинговых подписок Stripe. Он обрабатывает почти все шаблонные коды биллинговых подписок, которые вы боитесь написать.

В дополнение к основному управлению подписками, Cashier может обрабатывать купоны, подмену подписок, «количество» подписок, периоды скидок и даже генерировать PDF-файлы счетов.

Сообщество и документация

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

Это способствует расширению сообщества, и вам стоит знать, что Laravel был внесён в список самых популярных PHP-фреймворков в 2013 году, опередив Phalcon, Symfony2 и CodeIgniter. А в августе 2014 года Laravel стал самым популярным и просматриваемым PHP-проектом на GitHub.

Вывод

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

P.S. Вы используете фреймворки при разработке своих проектов? Если используете, то напишите в комментариях к статье, какие фреймворки вы используете. Если нет, то хотели бы вы освоить и использовать фреймворки?

Видео презентация курса «Фреймворк Laravel с Нуля до Профи»

Релиз курса «Фреймворк Laravel с Нуля до Профи»
состоится 25 октября 2020 года.

Проект с высокой посещаемостью — архитектура. Фреймворк или самопис? Узкие места YII

Никак не могу определиться на чем писать крупный проект. Проект из себя представляет нечто вроде социальной сети. Реализовываться будет на php, mysql. Основные нагрузки будут на базу в момент общения пользователей. Все примерно как вконтакте, друзья и собственно переписка, и личные сообщения. Я начал писать свой mvc фреймворк, получилось что то похожее на kohana-yii. В нем мне предельно все ясно, я продумал что маршрутизация будет хранится в мэмкэше, некоторые постоянные данные так же для максимальной производительности. Потом скорее всего мощности 1 сервера не будет хватать и нужно будет распределять базу данных по серверам, а я хз как это сделать.

И вот я задумался — а может не париться с разработкой фреймворка и взять yii или другой готовый фреймворк. Подходит ли YII для такого проекта? Какие узкие места в нем которые будут сказываться на производительности? Есть ли какая то альтернатива? Большое количество чатов для общения между пользователями — где хранить данные, в mysql или? Выдержит ли mysql? Подходит ли для этого php?

5 ответов 5

под большие проекты я бы посоветовал использовать: Symfony 2, Zend, Kohana. Yii больше подойдет для средних проектов.

Я бы ни в коем случае не использовал Yii. Первая версия выйдет большим боком с PSR-совместимостью (т.е. будет все-таки самопис) и многими wtf-моментами, вторая получше, но я с ней уже успел натерпеться и не хочу даже трогать. Symfony мне очень нравится с точки зрения разделения prod/dev версий, настоящей проработки и кэширования, Phalcon я бы рассматривал как потенциально скоростной вариант. Самопис изначально провален по той причине, что за те же стартовые деньги придется поддерживать и самописный фреймворк, и приложение (писать их вместе единым целым толком не получится).

Все-таки еще скажу пару слов про PSR: только он и внешние библиотеки позволят расщепить код на составные части и улучшать именно нужные (а поддержка и ускорение внешних либ на 95% будут осуществляться другими разрабами), не говоря уж о том, сколько кода придется не писать.

upd 2 Ну и от SPOF в архитектуре ни один фреймворк не спасет, это стоит помнить.

используйте Yii, подходит. Остальные задачи решайте по мере наступления.

Я бы использовал yii. Тем более что у них есть неплохой рецепт на сайте http://yiiframework.ru/doc/cookbook/ru/highload

Использовать лучше тот фреймворк, с которым Вы хорошо знакомы. Помните — не фреймворк справляется с нагрузками, а архитектура. Много полезной информации о Хайлоаде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php mysql yii kohana или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.9.35389

Laravel framework: 18 особенностей движка

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

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

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

Вас, кстати, это тоже ждёт, т.к. лучший способ что-то изучить – это проделать это самостоятельно ��

Но, об этом немного погодя.

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

Кому стоит попробовать Laravel фреймворк?

Перед тем, как мы начнём, я хотел бы в двух словах рассказать, для кого предназначена данная статья.

В первую очередь, она, конечно будет интересна моим коллегам-разработчикам либо тем, кто таковыми планирует стать, т.к. фреймворк — это инструмент профессионального программиста.

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

Для web-developer же данный материал, как и весь цикл последующих статей, будет просто необходим, т.к. умение работы с фреймворком must have, если вы заботитесь о своём профессиональном и карьерном росте.

Надеюсь, я вас слегка замотивировал? Тогда поехали ��

Laravel – это что?

Для тех, кто не в курсе, и не знает, что такое Laravel, для начала расскажу в двух словах в общем об этом движке сайтов.

Итак, Laravel – это бесплатный PHP фреймворк общего назначения с открытым кодом, который появился на свет сравнительно недавно – в 2011 году, но, благодаря стремительным темпам развития и огромной армии поклонников, сегодня он является одним из самых популярных PHP движков.

Сами создатели Laravel назвали его «framework for artisans», что в переводе означает «фреймворк для ремесленников», намекая на то, что данная платформа даёт разработчикам полную свободу творчества, не создавая перед ними никаких препятствий в процессе разработки.

Уже в конце 2013 года Laravel имел версию 4.1 и был назван «самым многообещающим проектом на 2014 год» по версии sitepoint.com.


Кстати, на сегодняшний день текущей версией фреймворка является 5.4, разработку сайта на которой я и буду описывать в будущих статьях цикла.

А в 2015 и 2020 годах он был признан самым популярным PHP фреймворком по версии того же издания — sitepoint.com, которое ежегодно проводит опрос среди тысяч разработчиков по всему миру:

Итак, что же у Laravel “под капотом” и чем он завоевал такую безоговорочную популярность среди разработчиков?

18 ключевых особенностей Laravel фреймворка

Laravel – это PHP framework, а это значит, что он написан на языке программирования PHP и, создавать код на его базе можно также только на PHP.

Вообще-то, это нормальное поведение для PHP движков (Yii, Symfony, Zend), но, как известно, бывают и исключения в виде Phalcon, у которого компоненты написаны на C++, а пользовательский код пишется на PHP.

Поэтому-то я и решил обратить внимание на данный момент.

Итак, что же интересного даёт разработчику Laravel?

Начать я решил с особенности Laravel, с которой неизбежно сталкиваются все разработчики при освоении новой технологии.

Это документация Laravel, которая, по моему мнению, является очень хорошей и структурированной.

Думаю, что это также добавляет популярности данному движку среди разработчиков. По крайней мере, в моём случае это правда ��

Особенно было приятно изучать Laravel docs после попыток подружиться с Yii2, у которого мануалы представляют собой какой-то сплошной рассказ по созданию сайта на базе фреймворка с единичными упоминаниями некоторых конструкций и принципов их работы.

В Laravel документации таких проблем нет – каждой конструкции и процессу посвящена отдельная статья.

Поскольку у данного PHP framework масса последователей по всему миру, то в сети можно найти множество различных сообществ и пользовательских переводов статей.

Laravel документация на русском существует даже в нескольких вариантах на сайтах laravel-doc.ru, laravel.ru и laravel.su.

MVC структура кода

Структура кода Laravel framework соответствует популярному паттерну проектирования MVC, т.е. в нём можно выделить модели (models), представления (views) и контроллеры (controllers).

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

MVC позволяет делать код более читабельным, а процесс разработки комфортным, разграничивая работу frontend- и backend-разработчиков.

Artisan – это консоль Laravel, в арсенале команд которой есть работа с миграциями, контроллерами и моделями, авторизацией и прочими базовыми компонентами фреймворка.

Своего рода, контроль версий для структуры таблиц БД. Каждый файл миграции содержит либо структуру таблиц, либо изменения её структуры.

Т.е. процесс создания новых сущностей БД в Laravel фреймворке представляет собой создание миграции и запуск её с помощью специальных консольных команд artisan.

Пример создания таблицы пользователей сайта в соответсвующей миграции:

Также в движке есть множество методов для манипуляций миграциями: откат отдельных, сброс всех и т.д.

Blade – это собственный шаблонизатор с набором своих директив. Принцип его работы похож на большинство своих собратьев – Smarty, Twig и т.д. Так что если вы работали с каким-либо из них, то в курсе, что это такое.

Честно говоря, я до сих пор не совсем понимаю целесообразность использования шаблонизаторов. И уж, тем более, не понимаю, зачем команде Laravel нужно было выдумывать очередной велосипед, если их и так уже понапридумывали предостаточно.

Twitter Bootstrap и jQuery из коробки

Поcле установки Laravel фреймворка в распоряжении разработчика находятся файлы app.js и app.css, которые представляют собой скомпонованные и минимизированные jQuery и BootStrap самых последних версий на момент выхода релиза Laravel.

Так что подключать их вручную ещё раз нет смысла. Если вас, конечно, устроит подобное использование данных пакетов и вы не предпочтёте использовать какие-либо сборщики пакетов, к примеру, WebPack.

Для работы с ним в Laravel framework, кстати, есть специальный инструмент.

Данный пакет представляет собой надстройку над упомянутым WebPack, позволяющую разделять css и js код на отдельные модули, конфигурировать их использование, настраивать минификацию и использование css-препроцессоров (sass, less, stylus и т.д.).

В общем, фронтэнд-разработчики оценят ��

Регистрация и аутентификация

Из коробки Laravel предоставляет механизм регистрации и авторизации пользователей, что упрощает жизнь разработчикам, позволяя не изобретать очередные велосипеды.

Вспомните времена, когда вы писали на чистом PHP и делали проверку на существование в БД значения, вводимого с формы, путём ручного запроса в базу для избегания его дублирования.

По правде говоря, поначалу, когда я только начинал работать с Laravel, я поступал точно так же, т.к. не знал о существовании и назначении валидаторов.

Laravel валидаторы – это конструкции, позволяющие производить проверку данных на основании различных готовых правил. Также Laravel позволяет создавать собственные правила, сообщения об ошибках и кастомные валидаторы в целом.

ORM – это технология программирования, которая призвана облегчить программистам работу с БД путём предоставления методов API для типичных операций (выборка, добавление, обновление, удаление и т.д.).

Реализаций ORM существует великое множество, но создатели Laravel и тут заморочились, выдумав собственную.

В Laravel из коробки доступны инструменты организации очередей процессов (например, для массовой отправки email).

Данная функция незаменима для HighLoad-проектов, т.к. позволяет разгрузить сервер от постоянной работы.

Интерфейс для Cron задач

Laravel предоставляет набор методов для создания и управления задачами, выполняемыми с помощью планировщика задач Cron.

Пример задачи с выполнением каждый час в промежутке между 7 и 22 часами дня:

Удобный дебаггинг кода и тестирование

Реализуется наличием debug panel, специальной функции dd() для вывода данных на экран (аналог PHP-конструкции echo ‘

Данное правило будет выводить на экран содержимое файла resources/views/welcome.blade.php при переходе в корень сайта.

Также для роутов возможно указывать методы контроллеров и пользовательские функции, применяя к ним MiddleWare – ещё одну фишку Laravel, представляющую собой прослойку между роутом и действием при его выполнении.

Работа с сессиями различными способами

Как известно, объекты сессий хранятся на сервере, следовательно, ими можно легко и удобно манипулировать серверными языками программирования, а также задавать им различные хранилища.

Этой особенностью решили воспользоваться Laravel разработчики, внедрив в фреймворк возможность выбора способа хранения объектов сессий с помощью различных технологий

  • файловое хранилище на сервере – стандартные объекты сессий;
  • cookie;
  • Memcached;
  • Redis;
  • сохранение данных в БД;
  • временный PHP массив.

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

Laracon – это тематическая конференция, целью которой является объединение любителей Laravel со всего мира для обмена опытом.

Она проводится несколько раз в год, начиная с 2013 года, причём, в разных уголках Земного шара. А в этом, 2020 году, она впервые будет проводиться в формате online.

Примеры Laravel сайтов

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

В этом и заключается их принципиальное отличие от CMS, которые, в большинстве своём, узкоспециализированы.

В завершение экспресс-знакомства с Laravel и для подтверждения своих слов я подготовил небольшую коллекцию сайтов, разработанных на Laravel framework, чтобы вы могли увидеть, чего можно достичь при изучении данного фреймворка:

  1. ambassadorpark.be – мультиязычный лендинг
  2. stichoza.com — лендинг с голосовым управлением
  3. phaser.io – сайт-визитка игрового фреймворка Phaser
  4. laracasts.com – портал, посвящённый Laravel, имеющий собственный форум
  5. www.exploregeorgia.org – сайт-визитка
  6. fox47.com – новостной портал


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

Между тем, возможность разработки нестандартных решений – это главная фишка Laravel и фреймворков в целом, которая выгодно отличает их от CMS.

Поэтому далее предлагаю вашему вниманию список Laravel проектов, не имеющих аналогов среди существующих сайтов:

  1. www.bonappetour.com
  2. quebec.yulair.com
  3. www.startups.co
  4. toyotahalloffame.com
  5. rv.campingworld.com

Напоследок о Laravel PHP framework

Конечно же, приведённый мною список особенностей Laravel далеко не полный. Но, надеюсь, его хватило, чтобы пробудить у вас интерес к изучению данного фреймворка ��

Если же аргументов вам показалось недостаточно, то достаточно вспомнить о популярности Laravel framework, что, в свою очередь, ведёт к росту востребованности соответствующих специалистов.

И, как показало моё недавнее мини-исследование рынка услуг PHP разработчиков, эта тенденция уже наблюдается как в СНГ, так и во всём мире.

Так что изучение Laravel фреймворка — это перспективное занятие со всех точек зрения: как с позиций профессионального роста, так и карьерного.

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

Наверное, потому, что «его логика совпадает с моей собственной», как сказал один из моих коллег-программистов на каком-то форуме.

Итак, мы рассмотрели наиболее интересные и значимые плюшки Laravel 5.

А более подробно с каждой из них я вас познакомлю в дальнейших публикациях цикла по созданию сайтов на Laravel 5 с нуля, который я торжественно открыл сегодняшней статьёй.

Надеюсь, что она получилась и не дала вам заскучать.

Пишите свои отзывы и пожелания в комментариях, а также не забывайте делиться записью со своими друзьями в социальных сетях, приобщая и их к созданию сайтов на Laravel.

На этом всё! До скорой встречи ��

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться ��

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

23 голоса, в среднем: 5 из 5

7 комментариев к статье «Laravel framework: 18 особенностей движка»

Автор, отличная статья, действительно заинтересовал. Спасибо!

Добрый день!
Прочитав вашу статью хотел бы узнать. С чего надо начать чтобы изучить Laravel?
Пробовал я по видеоурокам делать и честно скажу утомительное занятие. Самый простой сайт, который я мог бы сделать за пару дней с Laravelom провозился 2 недели и до конца так и не доделал.
Понимаю что надо какая то подготовка для понимания процесса, что вы посоветуете?
Спасибо.

Здравствуйте! Я, к сожалению, ничего годного в Рунете посоветовать не могу. Сам, когда начинал изучать, испытывал подобные трудности. У одних материал как-то сумбурно излагался, у других курсы не были доделаны.

По этой причине я и решился на написание собственного курса по созданию сайта на Laravel. Он расположен на данном сайте в виде статей в категории Laravel. Читайте все по порядку — и к концу получите сайт-визитку на HTML Bootstrap 3 шаблоне с контактной формой.

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

Начинаю читать статью, сразу говорит что у Yii документация плохая, я по ней учился и трудностей не возникло, а сюда то твоей статье, то ты не особо хорошо читал документацию Laravel, если не увидел там информацию про валидаторы, ну а если таковой информации нет, ну тогда документация так себе (сам только начинаю учить Laravel), да и если бы ты взялся за Yii всерьез, а не так что начал учить и бросил, потому что сложно… Ну кстати в таком случае вопрос, как ты вообще стал программистом если тебе было трудно читать их документацию? Так вот если бы продолжил изучать Yii, то когда пришел учить Laravel, наоборот искал эти самые валидаторы, потому что я не представляю что фреймворк с такой популярностью и количеством поклонников не имеет валидаторов или хотя бы что-то что упрощает валидацию. Ну и я конечно понимаю что кто-то скажет что Yii слишком громоздкой, там куча хелперов и там есть еще огромная куча не совсем нужных инструментов (люди то разные есть, а сколько людей, столько и мнений) и которых скорее всего нет в других, но все таки я думаю что валидаторы или удобный инструмент для проверки тупо обязан быть. ИМХО.

Добрый день! �� С чего вы взяли, что в Laravel нет валидаторов? Если они указаны в качестве одной из особенностей Laravel фреймворка в статье, то это само по себе предполагает их наличие в коде движка, Вам так не кажется?

У вас написано на laravel можно делать все что угодно от лендингов до социальных сетей.Пожалуйста дайте ссылку хоть на одну соц сеть сделанную на laravel
done;

Чтобы далеко не ходить, в пример можно привести тот же самый Laracasts. Но с ним не всё так просто, соглашусь… В нём много типов сайтов совмещается. Вот что-то более специализированное — https://signl.uk

Но если вы ожидали увидеть в этом списке Facebook и Pinterest, то да, они не на Laravel написаны.

Первое приложение на Laravel. Пошаговое руководство (Часть 1)

Cо дня своего релиза в 2011 популярность фреймворка Laravel выросла на порядок. В 2015 году он стал самым популярным (starred) PHP фреймворком на GitHub. Сегодня Laravel выбирают в качестве основного инструмента разработчики по всему миру.

Laravel сфокусирован на вас, конечных пользователях, что в первую очередь означает нацеленность на простоту, ясность и результат. Крупные компании и разработчики-одиночки используют его для проектов любого рода: от хобби до корпоративных порталов крупнейших компаний мира.

Цель этой статьи — создать руководство для тех, кто только начал изучать Laravel. Начать с идеи и построить реальное приложение.

Это не полное руководство по фреймворку, мы не охватим все детали Laravel и для начала необходимо выполнить ряд условий. Вот, что потребуется:

  • Локальная PHP среда (Homestead, Vagrant, MAMP и т.д.)
  • База данных. Я буду использовать MySQL.
  • PHPUnit
  • Node.js

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

Планирование

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

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

В качестве проекта для этого руководства мы будем делать каталог ссылок. Вот список основных целей для этого приложения:

  • Показать простой список ссылок
  • Создать форму для добавления новых ссылок
  • Проверить данные формы
  • Вставить данные в базу данных.

Первые шаги

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

/Code и везде далее буду использовать этот путь. Вы можете изменить его на более привычный вам.

Откройте терминал и создайте новый каталог для кода проекта.

Затем установите программу установки Laravel :

После завершения процесса , можно создать новый проект, выполнив:

Эта команда создаст новый каталог и установит пустой проект Laravel.


Теперь нужно создать виртуальный хост, ссылающийся на

/Code/links/public, чтобы можно было загрузить сайт в браузере. В качестве домена я использовал links.dev.

Если все работает, вы должны увидеть страницу-заглушку Laravel:

Теперь сгенерируем систему аутентификации использую следующую команду:

Хотя в этом уроке мы не будем вдаваться в систему аутентификации, стоит упомянуть, что эта команда создаст шаблоны и изменит роутинг. Сделаем это сразу, чтобы потом не переживать за вмешательство в наш код. Теперь когда все установлено и работает, приступим к коду.

Создаем список ссылок

Если держать в голове весь проект можно сойти с ума. Лучше разбить все на более мелкие задачи. Так что давайте начнем со списка ссылок.

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

Первым шагом будет создание миграции. В этом нам поможет консольный инструмент artisan.

Теперь откройте файл, который создала команда. Он находится по следующему пути database/migrations/<<ДатаВремя>>_create_links_table.php

Внутри метода up добавьте столбцы таблицы

Сохраните файл и запустите миграцию

Теперь надо добавить данные. В Laravel для этой цели есть две функции: заполнение начальными данными (seeding) и фабрики моделей.

Перед тем как продолжить процесс, самое время написать первый юнит-тест. Я предпочитаю делить тесты на две категории: функционал (features) и юниты (unit). Этот тест будет юнит-тестом, поэтому создаем файл ./tests/unit/SeederTest.php и добавляем тестирующий метод :

Этот метод должен выдать ошибку. Запускаем — так и есть

Стоп, мы не это вообще-то тестируем. При установке в Laravel уже есть один тестовый файл ExampleTest.php . Удалите его и запустите phpunit снова.

Теперь мы видим нашу настоящую ошибку

1) SeederTest::testLinksTable Unable to find row in database table [links] that matched attributes [<"ti-tle":"dotdev.co">]. Failed asserting that 0 is greater than 0.

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

Откройте DatabaseSeeder.php и добавьте следующее в метод run:

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

Отредактируем созданную модель app/Link.php добавив имя таблицы в бд:

Теперь вернемся к ModelFactory.php и добавим наши ссылки:

Если мы снова запустим сейчас phpunit, ошибка все еще будет, т.к. ссылки с названием “dotdev.co” в базе еще нет. В нашем SeederTest мы можем создать эту запись в бд с помощью той же фабрики моделей:

Теперь, если выполнить phpunit все должно завершиться успешно.

Следующий шаг – собственно вывод самого списка ссылок. И само время написать новый тест.

Создаем новый файл ./tests/features/LinkTest.php. Спросим себя: что мы ожидаем увидеть? На странице списка ссылок мы можем найти известную нам ссылку, как мы делали выше, и подтвердить, что мы реально ее видим. Вот код такой проверки:

Phpunit снова выдает ошибку, что искомая строка не найдена. Откроем карту машрутов ./app/Http/routes.php и посмотрим куда указывает маршрут «/» .

Давайте сделаем выборку наших ссылок и отправим их в представление.

Отредактируем welcome.blade.php добавив простой цикл foreach:

Теперь phpunit позеленел. Тесты прошли успешно.

Мои поздравления! Первая функция реализована и покрыта тестами. Ничего не ломайте 😉

Интервью с Александром Макаровым

— Привет, Александр! Благодарю, что согласились дать интервью. Расскажите немного о себе, где вы работаете и что делаете?

— Привет! Я из Воронежа. Работаю над PHP фреймворком Yii и другими открытыми проектами, организую PHP Russia. Раньше работал в Wrike, Stay.com, Skyeng и других интересных проектах. Участвую в создании стандартов PSR.

— Как именно вы начали работать над Yii?

— Примерно в 2008-м я на него случайно наткнулся, понял что он мне нравится и начал дорабатывать и менять то, что мне не нравилось или что я мог сделать лучше. В 2010 Qiang пригласил меня в основную команду.

— Расскажите о команде Yii. Кто стоял у истоков? Сколько сейчас в команде людей и кто чем занимается?

— Истоки Yii — фреймворк Prado (http://www.pradoframework.net/), который до сих пор поддерживают энтузиасты. И его и Yii изначально сделал один человек — Qiang Xue. Он родом из Китая, живёт в США. Я уже принимал участие в поддержке и доработке Yii 1.1 и далее в проектировании Yii 2.0. Сейчас в команде активно 5 человек:

  • Я, занимаюсь всем.
  • Carsten Brandt. Занимается релизами 1.1, инфраструктурой. Далее планирует снова заниматься самим фреймворком, но пока со временем не очень.
  • Дмитрий Науменко занимается Yii 2.0 и немного 3.0.
  • Андрей Васильев. Занимается Yii 3.0.
  • Роман Журавлёв. Занимается расширением Queue.

На самом деле более-менее активно участвует в проекте гораздо больше людей. Сообщество хорошее.

— Как удалось выстроить активное OpenSource сообщество вокруг Yii?

— Прежде всего, качественным продуктом и хорошей подробной документацией. Ну а далее мы активно реагировали на все вопросы, разбирали issue и pull request и делали это стабильно с самого первого релиза фреймворка в 2008 году.

— Даже для развития OpenSource проектов важно финансирование и маркетинг. Пример этому Laravel. У команды Yii были попытки привлечь спонсоров, а также людей для маркетинга и PR?

— Попыток привлечь спонсоров раньше не было, но вот недавно мы решились и ввели такой способ помочь проекту: https://opencollective.com/yiisoft. Людей из маркетинга и PR нет, не привлекали никогда.

— Возникали ли идеи создать какой-то побочный для Yii проект, который способен обеспечить финансово дальнейшее развитие Yii?

— Возникали. После релиза Yii 3.0 что-нибудь сделаем на эту тему.

— Почему Yii был назван именно так и что означает? Ранее у кого-нибудь были мысли переименовать его на более звучно произносимое?

— Yii — значит на китайском «простой и эволюционирующий». Также может расшифровываться как акроним «Yes It Is!». Для китайского это звучно и произносимо. Мыслей переименовывать у нас не было, хотя иногда этот вопрос задают.

— Помогал ли Yii найти работу?

— Да. Благодаря работе над Yii я попал в CleverTech и Stay.com. Похоже получилось не только у меня, но и у многих других. Оно и понятно, проект достаточно известный.

— Насколько Yii продолжает быть востребованным на фрилансе и среди компаний?

— Меньше, чем сразу после релиза 2.0, но довольно востребован.

— Сейчас ведется разработка новой версии Yii. Насколько сложно будет перенести проект с Yii2 на Yii3?

— Сложно. В Yii 3 мы исправляем много фундаментальных недочётов, так что ломается всё довольно сильно.

— Как долго будет поддерживаться Yii2?

— После релиза Yii 3.0 ветка 2.0 будет получать багфиксы 2 года и ещё два года после — фиксы безопасности.

— Что ждет Yii в будущем и какие планы?

— Если вопрос про 3.0, то:

  • PSR (HTTP request-response, middleware, container, events).
  • DDD-совместимость.
  • Всё хорошее из Yii 2.
  • Отделение консоли от веба.
  • Разбиение на части, которые можно использовать отдельно.
  • Строгая типизация.
  • SOLID.
  • Убийство иерархии классов.
  • Убийство большинства wrapper-расширений.
  • Отказ от нестандартных объектов.


Если это про будущее Yii в общем, то планы и далее его развивать и поддерживать.

— Используете ли вы Yii в своих собственных проектах. А может быть какие-нибудь другие фреймворки?

— Да, использую. Именно в своих проектах других фреймворков (исключая Android) не использую, а вот в коммерческой разработке, которой занимался, были и Symfony и Zend и Laravel.

— Как возникло желание и идеи выступать на IT-конференциях? Это как-то удавалось совмещать с основной работой?

— Желание что-то рассказать было, наверное, всегда. Идея возникла когда стало понятно, что у меня есть что рассказать.

Всем OpenSource я всегда занимался в свободное время параллельно работая. Доклады я рассказываю по темам, в которых отлично разбираюсь, так что потратить несколько дней чтобы превратить тучу мыслей в слайды и ещё пару дней чтобы сложить в голове доклад — не проблема.

— Какие инструменты в процессе разработки вы применяете?

— Windows 10 / MacOS, bash, Github, git, SmartGit, PhpStorm, Visual Studio Code, XDebug, nginx, PHPUnit.

— Веб разработка (и не только) стремительно развивается, появляются новые инструменты, которые помогают делать программы быстрей и качественней. Но вместе с этим, создается сложность понимания как эти инструменты работают изнутри. Простой пример: чтобы сделать подключение к какому-то хранилищу данных, нам не нужно знать как оно работает на системном уровне и какие команды запроса к данным используются. Условно, есть удобное для понимание api и методы, которые позволяют не вдаваясь в подробности выполнить определенную задачу. Можно ли сказать, что вскоре это будет подобно черному ящику, когда не понимаешь как все работает изнутри?

— И да и нет. С одной стороны, попытки сделать это есть. С другой стороны, нормально работать только с такими вот API получается только в простейших случаях когда всё идёт как надо. Все абстракции текут, поэтому, рано или поздно, приходится разбираться, что же там на самом деле под капотом.

— Отвлечемся от работы и поговорим об увлечениях. Как проводите время и есть ли какое-то хобби?

— Провожу время с семьей, с друзьями, в обучении новому и в путешествиях. Увлечения: путешествия, кофе, фотография, музыка (как слушатель), книги, немного спорта.

— Насколько я знаю, вы написали несколько книг. Расскажите, что это за книги?

— Книги про Yii. Одна про версию 1.1, Yii Cookbook. Была издана ещё и на русском как «сборник рецептов». Вторую по Yii 2 я не стал традиционно издавать, а выложил на Github: https://github.com/samdark/yii2-cookbook.

— Благодарю, что вы дали интервью и потратили свое время. Можете что-нибудь сказать читателям напоследок?

— Никогда не останавливайтесь в изучении нового.

Почему мы выбрали php фреймворк Laravel?

5 Сентября 2020

Немного предыстории.

Шел 2014 год. Количество и сложность наших проектов росла и наша старая самописная CMS уже не позволяла справляться с тем потоком и уровнем сайтов необходимых нашим клиентам.

Мы набирали новых программистов в команду, на некоторое время это решало проблемы, но глобально нет, не думаю что нам бы доверили разрабатывать свои сайты: http://www.president.gov.ua/, http://atl.ua/, https://credit-agricole.ua/, http://mafia.ua/ и другие, если бы у нас была старая система.

Нужна была новая CMS на базе современного PHP фреймворка!

Какие задачи должен был решать фреймворк?

  • Простота в изучении. Нужно было, чтобы каждый разработчик мог за минимально потраченное количество времени освоить фреймворк и писать качественный код.
  • Простота в написании кода. Код должен быть интуитивно понятным и простым, чтобы любой разработчик мог поддерживать проект.
  • Скорость работы. Мы понимали, что на фреймворке скорость загрузки страниц сайтов будет ниже, чем на старой CMS, где только чистый PHP, но она должна быть в пределах 0.2 – 0.3 сек. Никто не любит долго ждать.
  • Скорость написание кода. Проектов много и сроки всегда на вчера, поэтому нужна быстрая разработка сайтов.
  • Безопасность. Среди наших клиентов много банков, а для них безопасность главнее всего.
  • Масштабируемость. Чтобы легко можно было писать, как не большие корпоративные сайты, так и большие интернет-магазины и порталы.
  • Функциональность. Из коробки должны быть доступны решения многих типичных задач.

Выбор между фреймворками

Выбор стоял между фреймворками: Laravel, Yii, Symfony. Не до фреймворки как Codeigniter и Kohana сразу отпали, сложно их вообще называть фреймворками.

Динозавра, как Zend тоже откинули сразу. На нем пишут только те кто начал на нем писать проект 15 лет назад и не могут теперь с него спрыгнуть.

Почему не Symfony и Yii?

Symfony все таки рассчитан на большие проекты, мелкие и средние проекты на нем делать, это как экскаватором картошку выкапывать :). Можно, но не сильно удобно, а нам нужен был фреймфорк на все случаи.

Yii хороший фреймворк и разработчики, которые имеют достаточный опыт с ним скажут что он лучше чем Laravel. Тоже самое только в обратную сторону скажут ларавельщики.

Но на тот момент у нас не было опыта ни в Yii, ни в Laravel, поэтому открыв документацию на Laravel и Yii, и потратив день на ее изучение мы поняли, что философия Laravel нам ближе. Вырезка из документации.

«Laravel – фреймворк для построения веб-приложений с выразительным и элегантным синтаксисом. Мы считаем, что процесс разработки только тогда наиболее продуктивен, когда работа с фреймворком приносит радость и удовольствие. Счастливые разработчики пишут лучший код.»

Почему же Laravel?

Начиная с 2013 года Laravel признан лучшим и самым популярным фреймфорком в мире.

  • Синтаксис легче и элегантнее чем у конкурентов.
  • Taylor Otwell (создатель Laravel), дай Бог ему здоровья за его разработку, взял лучшее из существующих PHP фреймфорков, а также Ruby on Rails, ASP.NET MVC, Sinatra и создал фреймворк, который максимально просто решает рутиные задачи программистов.
  • Laravel – это full stack решение, как для back-end так и для front-end разработчиков. Для фронтенда есть из коробки система сборки laravel Mix, которая построена на Webpack, а так же js фреймворк – Vue.
  • Пакеты (расширения), что дало нам возможность создавать пакеты для своих потребностей. Сейчас у нас около 15 пакетов, которые решают типичные задачи. Та же CMS у нас в виде пакета, которую можно одной командой обновить в случае выхода новых обновлений. Также существуют сотни, а может и тысячи, готовых пакетов разработчиков всего мира, поэтому нам уже не нужно изобретать велосипед каждый раз, когда приходит нестандартная задача. С большой долей вероятности пакет уже кто-то написал.
  • Наличие интегрированной системы модульного тестирования phpunit, что делает наши сайты более надежными.
  • Отличная документация, а также https://laracasts.com/ отличный сайт для обучения, будет полезен как новичкам так и продвинутым программистам.
  • Безопасность. Возможность получить несанкционированный доступ к базе данных крайне сложно. Высокий уровень безопасности гарантирует надежную защиту от SQL- injection, атак типа XSS, CSRF.
  • Всегда в тренде. Использует новейшие возможности PHP (функции замыкания, пространства имен и др.), что гарантирует лучшую производительность. В версии 5.5 по умолчанию уже PHP7.
  • Eloquent ORM. Очень простая и функциональя ORM основанная на паттерне ActiveRecord.
  • Большое сообщество. Решение любой проблемы можно легко найти в гугле.

Статью подготовил PHP-разработчик диджитал агентства VIS-A-VIS – Артур Щаблевский.

Понравилась статья? – Поделитесь ссылкой::

Как стать веб-разработчиком на PHP: история Руслана Купцова

Начало

Программистом я мечтал стать еще в школе, писал даже об этом в сочинениях. Никогда не имел больших успехов в информатике, часто даже прогуливал её.

Все таки к окончанию 11 класса я решил что стать программистом — это моя цель № 1 в жизни.

Первые шаги в программировании

После окончания школы я решил подучить HTML, и, потратив около 5 часов, я освоил его полностью и мог свободно строить любые HTML страницы. Я не знал про CSS и тупо делал все в табличном стиле. Страницы были довольно страшные, но я был рад даже этому.

Я не понимал как мне стать настоящим программистом и что я должен учить, но в семье нужны были деньги и я устроился на работу в местный военкомат в качестве наборщика текста в Excel. Так я проработал более 1 года. Я стал понимать , что совсем не иду к своей цели и меня увело куда-то в сторону. Я начал искать стажировку по программированию.

Как я познакомился с PHP программированием

Я ушел из военкомата и стал перекапывать все сайты по работе и наконец-то нашел компанию, которая набирала людей к себе на обучение и после предоставляла работу на своих PHP проектах. Мне оставалось только пройти небольшое собеседование. Я прошел собеседование, на котором меня спрашивали был ли у меня опыт программирования и готов ли я учиться PHP каждый день по 4 часа и выполнять все домашние задания на протяжение трёх месяцев. Через 2 недели после собеседования, мне позвонили и сказали что готовы взять меня на обучение.

Занятия проходили в группе из 10 человек. Я учился очень плотно, порой спал всего лишь по 3-4 часа, голова просто взрывалась от количества информации. Я купил курсы Евгения Попова и благодаря ему очень сильно продвинулся вперед, у него была очень легкая подача материала и много полезного дополнительного контента. В моём окружение не было профессиональных программистов, поэтому все приходилось искать самому, порой это стоило очень больших усилий и потери кучи времени, но в итоге я добился своего. Спустя 2 месяца после обучения, из 10 человек осталось только 5, остальные просто не справились. Я оказался в Топ-3 самых сильных учеников, хотя первый месяц я очень сильно плавал и даже не мог сделать элементарные страницы на PHP. Учеба закончилась и нам предложили остаться для работы над проектами.

А ты можешь обучиться с помощью профессиональных программистов у нас на mkdev. Узнай, как всё устроено: Про менторство

Первая работа

Первый проект, который нам дали после окончания обучения был автомобильный портал на Zend Framework. Нам разбили задачи по нему и началась работа. Зарплата по началу была всего лишь 7 000 руб, и я считал это большим достижением. Я понимал, что надо расти дальше более быстрыми шагами, т.к видел что зарплаты на рынке в несколько раз превышают мою.

Спустя 4 месяца работы, мы вместе с напарником ушли из компании в поисках более оплачиваемой работы. Уже через 2 недели мы нашли работу программистами PHP в хостинговой компании, где занимались разработкой биллинг системы и наша зарплата выросла в 2 раза. Проработав более 7 месяцев, я набрался достаточно опыта и начал искать новые варианты работы, и тут мне знакомый предложил работу на фриланс бирже. Так началась моя удаленная работа.

Сейчас

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

Руслан может рассказать, с чего начинать обучение программированию, обучить основам PHP и поиску заказчиков на фриланс-биржах. Нанять

Менторство

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

Недавно снова решил вернуться к теме обучения и случайно наткнулся на сайт «mkdev.me» и очень проникся темой менторства. Написав в чат поддержки я предложил свою кандидатуру и после тщательных проверок меня пригласили к сотрудничеству. Я очень хочу обучать других людей и делиться всем накопленным опытом.

Вопросы

Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?

Самое главное — это понимать концепцию программирования. Очень много холиваров в интернете по поводу языков программирования. Как мне кажется не важно на каком языке ты пишешь, главное чтобы он решал задачу. Никто не говорил, что программист должен знать 1 язык и все. Для программиста язык это всего лишь инструмент для выполнения задач, а знать он может хоть 20, хоть 100 языков. Поэтому выбирайте для начала тот язык, который вам больше нравится.

Как ты сохраняешь свои навыки актуальными? Как постоянно растешь и становишься лучше как разработчик?

Читаю хабрахабр постоянно, езжу на различные IT конференции, смотрю вебинары и читаю книги по IT.

Топ-3 книжек для новичка?

  • Чистый код: как отличать хороший код от плохого, почему рабочий код ещё не значит хороший;
  • Linux: полное руководство: действительно самое полное руководство;
  • Программист-прагматик: требования к программам и программистам безотносительно технических тонкостей, от личной ответственности до архитектурных методик.

Топ-3 сайта/рассылки/источника инфы, на которые должен быть подписан каждый разработчик?

Об эффективности обучения у Руслана и остальных менторов mkdev мы рассказывали в цифрах подписчикам нашей рассылки. Получить отчёт об успехах наших учеников ты можешь, подписавшись через эту форму:

Мастер Йода рекомендует:  Работа с запланированными событиями MySQL
Добавить комментарий