Содержание
YiiFramework — YIi2 + CMS | Страница 2 | PHPClub
Вурдалак
Продвинутый новичок
#21
Вурдалак написал(а):
Если вкратце, то что в этой библиотеке прикольного, чего нет в существующих PHP аналогах?
Нажмите для раскрытия…
ping @fixxxer
fixxxer
К.О.
#22
О, так сработало. Я сталкера заигнорил, он надоел спамить своими темами.
Наверное, лучше будет, если я просто дам ссылки, чем изображать Рабиновича, напевающего Битлз:
http://rom-rb.org/4.0/learn/introduction/
http://rom-rb.org/4.0/learn/getting-started/core-concepts/
(кстати, там они забавно избегают слова Model, которое рубисты после рельсов понимают как anemic AR).
Я сам на руби почти не писал. Но идея интересная и, как по мне, хорошо ложится на DDD и CQRS.
Вурдалак
Продвинутый новичок
#23
fixxxer написал(а):
Наверное, лучше будет, если я просто дам ссылки, чем изображать Рабиновича, напевающего Битлз:
http://rom-rb. org/4.0/learn/introduction/
http://rom-rb.org/4.0/learn/getting-started/core-concepts/Нажмите для раскрытия…
Я смотрел. Но я, честно говоря, не понял прикола
Просто с ходу:
http://rom-rb.org/4.0/learn/repositories/quick-start/#create
user_repo.create(name: «Jane», email: «[email protected]»)
# => #<ROM::Struct[User] id=1 name=»Jane» email=»[email protected]»>Нажмите для раскрытия…
— почему не User.register()? Что за user_repo.create?
http://rom-rb.org/4.0/learn/core/commands/
Нажмите для раскрытия…
— странная фигня, это они так предлагают обновлять сущность?
Или это просто чисто инфраструктура, но тогда чем она отличается от Doctrine/Eloquent или любой другой ORM?
Ну и плюс они используют на уровне ORM такие слова, как «repository» и «commands», но вкладывают в них свой смысл, это какое-то паразитирование на модных словах.
StalkerClasses
Новичок
#24
fixxxer написал(а):
О, так сработало. Я сталкера заигнорил, он надоел спамить своими темами.
Нажмите для раскрытия…
Просто вопросы закончились.
В названии моделей допускается использовать нижнее подчеркивание?
Пример MyCustomer_2.php class MyCustomer_2?
AmdY
Пью пиво
#25
StalkerClasses написал(а):
Просто вопросы закончились.
В названии моделей допускается использовать нижнее подчеркивание?
Пример MyCustomer_2.php class MyCustomer_2?Нажмите для раскрытия…
http://www.php-fig.org/psr/psr-2/
StalkerClasses
Новичок
#26
Судя по всему нет. Спасибо.
StalkerClasses
Новичок
#27
А если в названии модели содержится
TestTable09a — то в виде SQL-таблицы это как должно быть (test_table_09_a или test_table_09a)?
или TestTable09A — то в виде SQL-таблицы это как должно быть (test_table_09_a или test_table_09a)?
WMix
герр M:)ller
#28
а если SQL, то s_q_l или sq_l или s_ql или sql?
TestTable09a => test_table09a
TestTable09A => test_table09_a
StalkerClasses
Новичок
#29
WMix написал(а):
а если SQL, то s_q_l или sq_l или s_ql или sql?
TestTable09a => test_table09a
TestTable09A => test_table09_aНажмите для раскрытия. ..
Спасибо за ответ.
Да понял почему — посмотев в Yii2.
Там получается что только большие буквы генерируются в слеш.
fixxxer
К.О.
#30
@Вурдалак,
Вурдалак написал(а):
вкладывают в них свой смысл
Нажмите для раскрытия…
Просто другой контекст. Doctrine repository точно так же !== DDD repository.
Вурдалак написал(а):
это они так предлагают обновлять сущность
Нажмите для раскрытия. ..
Ну, не так, а генерировать changesets, каким образом — вот это уже отдельная тема.
Вурдалак написал(а):
Просто с ходу …
Нажмите для раскрытия…
Это все про relations, а не про entities. Как это мапить на entities — это отдельный хороший вопрос.
Я на руби не писал больше пары сотен строчек кода в жизни, в ROM мне интересен сам ход мыслей с relations, которые в некотором смысле persistence models. Подробнее наверное не в этой теме надо обсуждать.
Вурдалак
Продвинутый новичок
#31
fixxxer написал(а):
@Вурдалак,
Просто другой контекст. Doctrine repository точно так же !== DDD repository.Нажмите для раскрытия…
Я к тому, что раньше это называли mapper, а теперь почему-то repository.
fixxxer
К.О.
#32
Думаю, это потому что по сути мапперов там два разных.
WMix
герр M:)ller
#33
я всегда думал, что repository и mapper совершенно разные задачи решают
StalkerClasses
Новичок
#34
StalkerClasses написал(а):
Нашел пока только вот такой вариант запуска.
Сверху дописав: $GLOBALS[‘_GET’][‘r’] = ‘page/index’;Нажмите для раскрытия…
DefaultController… помог в решении вопроса.
Yii — фреймворк на PHP. Основные особенности. Мини история. Личное мнение. Советы новичкам.
Какой путь обычно проходит PHP разработчик? Сначала он пишет с нуля, пробует, делает всё на примерах. Свои функции, классы, файлы, структура. Изобретает свои велосипеды. И это здорово на первых этапах. После он осознаёт что много денег так не заработаешь и надо ускорять свою работу, используя CMS. Изучает, пробует, делает. После разработчик осознаёт что в CMS всё не так гибко реализовывается и пробует CMF. Хотя может он сразу изучает CMF. И вот тогда он осознаёт, что вот оно — счастье. Находит свой фреймворк и делает всё на нём. Хотя нет… Вот так — краткосрочные, простые и средней сложности проекты, без долгой последующей поддержки, делает на CMS. Ну а если проект свой или просто клиент согласен с предпочтениями разработчика, плюс к этому проект долгий, с долгой дальнейшей поддержкой и разработкой, то тут самое то — фреймворк.
Сейчас я хочу рассказать о фреймворке Yii. Этот фреймворк написан на PHP.
Yii это
Динамично развивающийся фреймворк на PHP с хорошим сообществом, в том числе русскоязычным. Один из разработчиков — россиянин Александр Макаров aka Sam Dark. Он и занимается популяризацией фреймворка в России и не только.
На данный момент есть две стабильные версии 1.1.* и 2.0.*. Кстати, вторая версия после долгой разработки вышла совсем недавно — 12 октября.
Дату старта проекта указывают как 1 января 2008 года. Дата релиза 3 декбаря 2008 года. Основатель проекта Qiang Xue.
На Yii повлияли следующие CMF и CMS:
Prado — взят за основу в смысле идей. Это компонентная ориентированность и события, модульная архитектура, общий интерфейс взаимодействия с базой данных, интернационализация, локализация и другие фичи и паттерны.
Ruby on Rails — способ построения кофиграции к приложению, принцип реализации ORM.
jQuery — это javascript библиотека интегрирована в Yii. В том смысле, что всё же с Yii это серверное программирование, но виджеты, формы и прочие html куски сгенерированы вместе с прикреплением jQuery. В частности это делается для клиентской валидации, для ajax валидаци форм.
Symfony — взят принцип фильтров и архитектура расширений.
Joomla — взята модульная архитектура и интернационалиция.
Всё вышесказанное имеется ввиду про идея, а не про то, что прям взято из проекта. Ну jQuery непосредственно взята и лежит в vendors.
Про версии
Версия 1.0 уже не поддерживается.
Требования версии 1.1.* — это PHP 5.1.0. и выше.
Требования второй версии — это PHP 5.4 и выше.
Сайт фреймворка — http://www.yiiframework.com/
Русскоязычное сообщество — http://www.yiiframework.ru/
Кстати, сайт Александра Макарова — http://rmcreative. ru/ Естественно он там так же пишет и о Yii.
Что есть в этом фреймворке, что он из себя представляет:
- Он один из самых быстрых.
- Прост в изучении. Относительно прост. Тот, кто привык клепать сайты на CMS может не сразу поймёт структуру, принципы. Но если постараться, то оно того стоит.
- Структура проекта строится по паттерну MVC.
- Прослойка, интерфейсы для общения с БД. Для работы с базой данных имеются наборы классов DAO и ActiveRecord. DAO — это набор классов для непосредственного задания запросов к базе данных. ActiveRecord — классы, реализующие подход ORM, где таблица представляется классом, а записи таблицы — экзеплярами класса. Всё — DAO и ActiveRecord, работает через PDO, отсюда вытекает большой список поддерживаемых баз данных: SQLite, MySQL/MariaDB, PostgreSQL, SQL Server, Oracle, Firebird/Interbase 6 и другие. Полный список поддерживаемых драйверов тут. Стоит заметить, что через DAO задаются непосредственно SQL запросы, синтаксис которых может всё таки различаться для разных СУБД.
- Имеется встроенная поддержка интернационализации. Кстати, к месту или нет будет сказано, но там так же есть возможность построения словоформ, как например 1 рубль, 10 рублей. Ну вы поняли.
- Генерация базового кода PHP генератором Gii, который является модулем Yii, изначально встроенным. Можно сгенериовать модель, контроллер или сразу модель, контроллер и views для операций CRUD на сущностью, таблицей. В Gii есть шаблоны генерации кода, которые можно изменить, чтобы файлы генерировались в том виде, в каком вы хотите. Хотите чтобы записи выводились таблично или «плиткой» — делаем свой шаблон генерируем. Если проект долгий, то можно озадачиться составлением различных шаблонов конкретно для этого проекта, что очень упростит жизнь и ускорит процесс разработки.
- Кеширование страниц и отдельных фрагментов.
- Поддержка тем оформления
- Возможность простого подключения сторонних классов, библиотек. При чём это делается очень просто. Можно подключить стороннюю CRM, если встроенная не устраивает. В интернете много статей о том, как они «скрестили» что то с Yii.
- Верно так же о обратное. Можно очень легко подключить Yii к другому проекту. Подключается файл, создаётся экземпляр приложения и его можно использовать. Можно пользоваться Yii API через этот экземпляр приложения. Приложением в Yii является главный класс, который содержит в себе всю информацию, все подключённые компоненты.
- Миграции базы данных.
- Поддержка REST
- Аутентификация и авторизация. На мой взгляд всё реализовано логично и понятно. В пару строк не объяснишь, поэтому как то кратко попробую. Разграничение доступа строится на основе ролей — RBAC. Строится иерархия Роль — Задача — Операция. Причём древовидная структура может быть большой. Роль присваивается пользователю. Пользователь может иметь несколько ролей. И по этой иерархии можно есть ли связь между операцией, задачей и пользователем. Тем самым проверить доступность данного действия для пользователя. Фишка ещё в том что эта иерархия может сохранения как в базе, так в файле и другим образом. Авторизация выполнена в виде фильтра к контроллеру. Фильтр в Yii это код, который выполняется перед выполнением действия контроллера и решает, может ли выполниться действие контроллера при текущих условиях. В контексте авторизации может ли текущий пользователь выполнить текущую операцию. Кстати, есть ещё одна фишка — в этой иерархии можно описать дополнительные условия — бизнес-логику на допущение/не допущение при прочих равных условиях, но при текущих входных данных, условия выполнения. Например — многопользовательский блог и редактировать посты можно, но только хозяину поста.
- Перехват и обработка ошибок.
- Валидация входящих данных, записываемых данных — плюс к безопасности
- Автоматическое тестирование
- Есть большие возможности по расширению функционала — компоненты и поведения, модули и тд и тп
- Так же есть хорошие «плюшки» для безопасности. Есть возможности для предотвращение межсайтового скриптинга, предотвращение подделки межсайтовых запросов, предотвращение атак через cookie.
- Виджеты, формы, таблицы и прочее выводимые на сайте зачастую выводятся с прикреплением, инеграцией jQuery для дополнительного функционала, клиентской валидации, ajax валидации и прочей функциональности.
Может я ещё какие то фишки забыл написать.
Моё мнение
Делал я несколько проектов. Мне этот фреймворк понравился.
Из того что понравилось — понравились все фишки, которые описаны выше в списке. Единственное я там не применял темы оформления, миграцию и тестирование. Миграция — как то не нужно было. А темы оформления — я так и не понял в чём их плюсы, делал просто views и несколько layout. Наверное мне просто не понадобилась темизация, оформление было одно. Тестирование то же не применял, так были средние проекты, не было там особой надобности тесты делать.
Из того что не понравилось. Мне кажется вседозволенность расширения функционала — это модули, модули могут быть вложены в модули, в этих модулях могут быть поведения, которые может уже есть. Мне кажется надо как то жёстко задавать требования к построению модулей, проекта в целом. И/или надо как то вести реестр качественных проверенных, построенных по одним правилам расширений к Yii. Реестр расширений есть, то там такие разнообразные расширения от разных авторов с разной степенью готовности, заброшенности и тд и тп. Я один проект так делал — накидал всяких расширений. Получился какой то винигред.
Напутствие для новичков
.
Если сразу не получилось изучить, то попробуйте ещё раз. Комбинируйте чтение документации с выполнением каких то примеров, которые есть в интернете. Их не очень много, как например по всяким CMS, но они есть. Смотрите примеры кода проектов. Начинайте с простого.
Вообще говоря на русскоязычном сайте(ссылка выше) очень хорошее руководство.
Тем, кто начинает изучать Yii сейчас, думаю можно начать сразу со второй версии. Документация уже есть. На русский переводится. Ну или тем кто с английским не очень можно почитать русскую документацию по Yii 1.1, изучить всё, попробовать всё, а после просто изучить изменения, пришедшие во вторую версию. Ну а так проекты можно и наверное даже нужно делать на второй версии. Правда сейчас наверное расширений не так много, ориентированных на вторую версию.
SaaSHub — Альтернативы программного обеспечения и обзоры
Независимый рынок программного обеспечения
Регистрация
|
Логин
Сегодня
Новый
Вчерашний день
Еженедельно
Ежемесячно
+
Публиковать
Альсерис Аналитика
Alceris Analytics — это решение для аналитики веб-сайтов, ориентированное на конфиденциальность, которое создает ценную информацию без использования каких-либо пользовательских данных или файлов cookie. Мощная альтернатива Google Analytics, совместимая с GDPR.
→- Аналитика/веб-аналитика
- Проверено
- Цены обновлены: freemium €9,0 / в месяц (50000 просмотров страниц и событий)
Бевинзи
Ускорьте свое обучение с Bevinzey.
→- Инструменты Edtech/Education
- Хорошая альтернатива: PrepAI, Quillionz
- Проверено
Получивший удовольствие
Самый быстрый и простой способ получить действенную обратную связь от ваших клиентов.
→- Отзывы клиентов/Опросы
- Избранное
Управление движком ADAudit
ManageEngine ADAudit — это инструмент аудита активного каталога Windows в режиме реального времени.
- Аудит и соответствие/сетевое администрирование и управление
Спонсируется
Уоллестер
Будучи официальным партнером Visa, Wallester предлагает самую эффективную корпоративную карту, а также собственную, простую в использовании платформу для мониторинга и управления корпоративными расходами.
→- Корпоративная платежная карта/Финансовый менеджмент
- Избранное
DoTeam
Программное обеспечение для мониторинга и учета рабочего времени сотрудников, которое повышает производительность благодаря современной системе аналитики и отслеживания рабочей силы.
→- Инструменты управления персоналом/Офис и производительность
- Хорошая альтернатива: Harvest, Insightful.io, DeskTime, Staff.com, ClickTime
- Одобрено
Не пропустите самые популярные стартапы в нашем еженедельном отчете!
Получить назначение
Назначайте что угодно кому угодно без сложной адаптации.
→- Служба назначения/интеграция CRM
- Проверено
РеалВалидито
Телефонный валидатор | Бесплатная проверка номера телефона и поиск оператора — Real Validito.
→- Телефонный валидатор/API телефонного валидатора
- Проверено
Карта рисков
Бесплатная платформа анализа рисков.
→- Анализ безопасности/рисков
- Проверено
сммри
Бесплатно обобщайте статьи, тексты, веб-сайты, эссе и документы с помощью SMMRY.
→- Обобщающий текст/Образование
- Проверено
Карты Бесконечности
Если бы у Миро и Нотиона был ребенок.
→- Веб-приложение/производительность
- Проверено
Быстроходный
Облачное программное обеспечение для управления автопарком и транспортом Простой, но мощный инструмент, упрощающий работу вашего автопарка, управляемый транспортными решениями и, самое главное, позволяющий контролировать расходы.
→- Управление автопарком и логистика/управление автопарком
- 1 Новый обзор
iRender
iRender: служба рендеринга и рендер-фермы на облачном графическом процессоре. Оптимизация для (Redshift, Octane, Blender, V-Ray, Iray и т. д.) задач рендеринга с несколькими графическими процессорами в облаке.
→- 3D/3D визуализация
- 1 Новый обзор
Мирна
Инвентаризация управления складом.
→- Система управления электронной коммерцией/складом
- Утверждено
Сирин ОС
Единственная операционная система, достаточно безопасная для хранения и использования криптовалюты в мобильной среде.
→- Операционные системы/мобильные ОС
- Утверждено
КартофельЗаметки
Официальное приложение для заметок POSP будет добавлено в ближайшее время.
→- Заметки/Ведение заметок
- Утверждено
Джедай
Jedi — потрясающая библиотека автодополнения, статического анализа и рефакторинга для Python.
→- Инструменты разработчика/кодирование
- Утверждено
Amazon CodeWhisperer
Amazon CodeWhisperer — это сервис на основе машинного обучения (ML), который помогает повысить производительность разработчиков, создавая рекомендации по коду на основе их комментариев на естественном языке и кода в интегрированной среде разработки (IDE).
→- Инструменты разработчика/кодирование
- Утверждено
Второй помощник
Мини-имитация GitHub Copilot с открытым исходным кодом, использующая EleutherAI GPT-Neo-2.7B (через Huggingface Model Hub) для Emacs.
→- Инструменты разработчика/кодирование
- Утверждено
GPT-Code-Clippy
GPT-Code-Clippy (GPT-CC) — это версия GitHub Copilot с открытым исходным кодом, языковая модель, основанная на GPT-3, называемая GPT-Codex, которая настроена на общедоступный код из GitHub.
→- Инструменты разработчика/кодирование
- Утверждено
Музыкальный рекордер NoteBurner Amazon
NoteBurner Amazon Music Recorder — лучший инструмент для загрузки аудио, используемый для преобразования любой музыки Amazon Music в MP3/AAC/FLAC/WAV/AIFF/ALAC с сохранением качества звука до Ultra HD.
→- Аудио и музыка/Amazon Music
- 1 Новый обзор
Кози
Кози | Обязательное приложение для современной семьи.
→- Семейный органайзер/календарь
- 1 Новый обзор
VisualBoyAdvance
VisualBoyAdvance (VBA) — это эмулятор свободного программного обеспечения (GNU GPL), предназначенный для Game Boy, Super Game…
→- Игры/эмуляторы
- Добавлен в набор инструментов: MentalMystro
000веб-хост
Бесплатный хостинг веб-сайтов с PHP, MySQL, Cpanel и без рекламы!
→- Веб-хостинг/регистратор доменных имен
- Добавлено в набор инструментов: bitelse
10015.io
10015.io — это универсальный набор инструментов, предлагающий множество инструментов из разных категорий.
→- Инструменты разработчика/онлайн-инструменты
- Добавлено в набор инструментов: bitelse
Архив.
org
Интернет-архив — это некоммерческая цифровая библиотека, предлагающая бесплатный универсальный доступ к книгам, фильмам…
→- Электронные книги/Производительность
- Добавлен в набор инструментов: MentalMystro
Логово Вимма
Vimm’s Lair — элегантный сайт, посвященный ностальгии по многим новым игровым консолям, когда-либо созданным, которые проложили путь к поиску тысяч игр внутри.
→- Книги и справочники/диски
- Добавлен в набор инструментов: MentalMystro
CDРомантика
Новый веб-сайт с ретро-играми, предлагающий ромы, iso и игры в основном для старых консольных систем на компакт-дисках.
→- Ромы/игры
- Добавлен в набор инструментов: MentalMystro
Скачать ПЗУ
Загрузите ПЗУ и эмуляторы для GBA, SNES, NDS, GBC, GB, N64, NES, PSP, PS2, XBOX, WII и других!
→- Ромы/игры
- Добавлен в набор инструментов: MentalMystro
CoolROM
Загрузите с самого большого и чистого ресурса ПЗУ и эмуляторов в сети. Мобильная оптимизация. Системы включают N64, GBA, SNES, NDS, GBC, NES, MAME, PSX, Gamecube и другие.
→- Ромы/игры
- Добавлен в набор инструментов: MentalMystro
FreeROMS
FreeROMS предоставляет поклонникам игр огромный выбор ПЗУ и эмуляторов в течение значительного периода времени.
→- Ромы/игры
- Добавлен в набор инструментов: MentalMystro
Ретрикс
RetriX — это интерфейс эмулятора для UWP на всех аппаратных платформах, которые он поддерживает: он обслуживает…
→- Игры/эмуляторы
- Добавлено в набор инструментов: MentalMystro
РетроX
RetroX — это приложение для Android, которое поможет вам организовывать и играть в свои собственные ретро-игры с…
→- Игры/программное обеспечение для игр
- Добавлен в набор инструментов: MentalMystro
ПДК-ХК
MPC-HC, бесплатный медиаплеер с открытым исходным кодом для Windows. ЗагрузкиПримечание. Поддерживаемые операционные системы: Windows® XP SP3.
→- Медиаплеер/Видеоплеер
- Демо
— кв
Как я могу разместить свой продукт на главной странице?
Сравнить программное обеспечение
Laravel против Yii в 2022 году: что выбрать?
PHP по-прежнему входит в ТОП-5 языков внутреннего программирования в мире. Он использовался для создания Wikipedia, Facebook, Yahoo!, Slack, Tumblr и многих других известных веб-сайтов. PHP предлагает множество фреймворков для создания сложных веб-приложений и ускорения процесса разработки. На сегодняшний день самыми популярными являются Laravel и Yii. Есть много причин, по которым они завоевали популярность во многих отраслях. Узнайте, почему они стали выбором номер один среди разработчиков и в чем основные различия между ними.
Yii и Laravel: популярность среди отраслей
Эти два PHP-фреймворка известны своим удобством для разработчиков. Оба они имеют открытый исходный код и следуют архитектуре модель-представление-контроллер (MVC). Laravel предлагает меньше кода, выразительный и понятный синтаксис, общую простоту использования по сравнению с другими фреймворками. Yii наиболее известен своими виджетами и возможностями локализации. Согласно Google Trends, глобальная кривая интереса к Yii и Laravel с февраля 2020 года по февраль 2021 года выглядит следующим образом:0005
Интерес к Yii и Laravel в веб-поиске за февраль 2020 г. — февраль 2021 г.
Несмотря на более высокую популярность Laravel, все еще есть отрасли, в которых Yii используется более широко. Как сообщает SimilarTech, Yii имеет более высокий охват в области науки и образования, здравоохранения, финансов, права и правительства:
Охват использования Yii и Laravel по категориям веб-сайтов
Хотя Laravel является ведущей PHP-платформой, существуют отрасли. где разработчики предпочитают использовать Yii. Это зависит от масштаба проекта, специфики обработки данных, требований к структуре, безопасности, хранилищу и т. д. Давайте выясним, что заставляет инженеров выбирать именно эти фреймворки среди остальных и кто побеждает в войне Yii vs Laravel.
Хотите знать, какой PHP-фреймворк лучше всего подходит для вашего будущего приложения? Получите экспертную консультацию от KeyUA.
Свяжитесь с нами
Обзор Laravel
Изначально Laravel создавался как лучшая альтернатива Codeigniter. Он был ориентирован на разработку корпоративных программных приложений на основе шаблонов MVC. Секрет его популярности в основном заключается в сочетании доступности и мощности, поскольку Laravel предлагает чрезвычайно мощный набор инструментов и возможностей при сравнительно короткой кривой обучения. В настоящее время Laravel доступен в 6-й версии. Тем не менее, на Laravel 4 по-прежнему много веб-сайтов. Чтобы перейти на более поздние версии, разработчики должны портировать код вручную, что является относительно сложным процессом.
Laravel — это PHP-фреймворк с самым высоким рейтингом и самым известным сообществом по всему миру, за исключением Западной Европы и России. Вот ключевые функции, которые удерживают Laravel в лидерах:
Artisan : это инструмент командной строки, который позволяет создавать модели, элементы управления, настраивать запланированные задачи и с легкостью выполнять множество пользовательских команд.
Eloquent : система объектно-реляционного сопоставления (ORM), удобная и прозрачная реализация шаблона ActiveRecord для взаимодействия с базами данных.
Базы данных : Laravel имеет пакеты для всех доступных форматов баз данных. Он поставляется с хранилищем Redis «ключ: значение», инструментом Seeder для тестовых данных и функциями миграции для удобного переноса изменений базы данных и управления версиями.
Механизм шаблонов Blade : позволяет использовать простой PHP-код в представлениях. Представления компилируются и кэшируются до тех пор, пока они не будут изменены, что не приводит к перегрузке приложения.
Библиотеки : есть сотни стандартных библиотек Laravel, которые разработчики могут безопасно использовать в своих проектах. Создатели фреймворка также предлагают очень подробную и полезную официальную документацию со своевременными обновлениями.
Обзор Yii
Yii очень популярен среди российских и украинских разработчиков, это одна из ведущих стран по ИТ-аутсорсингу в мире. Он был выпущен в 2006 году как преемник фреймворка PRADO. Долгое время фреймворк оставался в версиях 1.0 и 1.1, пока в 2014 году наконец не был запущен Yii 2.0. С тех пор Yii начал терять свою популярность. Тем не менее, многие разработчики все еще активно используют его для новых разработок. Основные функции Yii включают в себя:
Поддержка для PostgreSQL, MySQL, SQLite, Oracle и других СУБД. Поддержка Microsoft BI и MongoDB доступна через сторонние пакеты.
Автоматическая генерация кода : с помощью расширения Gii разработчики могут значительно ускорить кодирование. С его помощью можно создать что угодно от модели до CRUD.
Шаблонизаторы не поддерживают встроенный . Однако можно использовать Twig, Smarty и другие сторонние решения.
Нет частых обновлений : нет необходимости портировать код проекта.
Большая база знаний : официальная документация и множество интерактивных руководств помогают разработчикам быстро находить ответы на большинство вопросов.
Оба фреймворка кажутся отличными, и это действительно так. Для более глубокого сравнения Laravel и Yii нужно рассматривать в более технических аспектах.
Yii против Laravel для веб-разработки
Они достаточно мощные, чтобы стать правильным выбором для различных типов разработки веб-платформ. Они предлагают впечатляющие возможности отладки, обеспечивают отличные возможности безопасности и поддерживают несколько решений для тестирования. Для обоих фреймворков существует множество расширений, которые помогают реализовать любую пользовательскую функциональность.
Однако, практикуя построение проектов в обоих фреймворках, наши специалисты столкнулись со специфическими отличиями между Yii и Laravel. И вот они.
1. Стоимость разработки
Использование фреймворков PHP удешевляет разработку, поскольку реализация той же функциональности и макета занимает меньше времени, чем использование чистого PHP. Однако стоимость услуг по разработке варьируется в зависимости от выбранного фреймворка. Чтобы сравнить общие цены, давайте проанализируем почасовые ставки для обеих платформ.
Yii : По данным ZipRecruiter, средняя зарплата разработчика Yii в США составляет 106 924 доллара, что составляет 51 доллар в час.
Laravel : Средняя зарплата разработчика Laravel составляет 92 285 долларов или 44 доллара в час (ZipRecruiter).
Общая стоимость проекта сильно зависит от квалификации и размера команды разработчиков и требований проекта. Также могут различаться предложения от разных IT-компаний-разработчиков. Из-за сравнительно высоких показателей PHP-разработчиков в США и Западной Европе многие местные компании предпочитают аутсорсинг разработки проектов удаленным специалистам из других мест.
Одним из регионов с наиболее значительным потенциалом и справедливым соотношением цены и качества является Восточная Европа. Здесь услуги разработки PHP предлагаются по цене от 25 до 40 долларов в час для Yii и от 30 до 45 долларов в час для разработчиков Laravel, согласно Upwork, одному из крупнейших порталов для фрилансеров в мире. Разработка Laravel в сегменте фриланса стоит немного дороже из-за более высокого спроса на специалистов по этому фреймворку. Yii менее популярен среди молодых специалистов. Именно поэтому его осваивает меньшее количество специалистов.
2. Время разработки
Трудно сравнивать Yii и Laravel с точки зрения времени, необходимого для разработки. Они используются для проектов, которые различаются по функциональности и требованиям к безопасности, производительности, расширяемости и т. д. Правильный выбор конкретного фреймворка сам по себе может значительно сэкономить время. Однако есть общие рекомендации, которые могут помочь определиться с правильным выбором.
Yii : Среди этих двух Yii является лучшим решением для контентных веб-сайтов с более или менее типичными панелями администратора, минимальной бизнес-логикой и стандартными манипуляциями с данными. Монолитный код в этом случае не вызовет никаких проблем, а разработка такого проекта на Yii займет меньше времени.
Laravel : Разработка дополнительных пользовательских функций с использованием Laravel занимает меньше времени. Он также предлагает гораздо больше пакетов для расширения функциональности фреймворка, облегчая реализацию нестандартных задач.
3. Производительность
Сравнивать производительность имеет смысл только для разработки приложений реального времени, когда важна скорость обработки критических данных в реальном времени. В остальных случаях оба фреймворка работают хорошо и не вызывают проблем у конечных пользователей.
Yii : Это самая быстрая среда PHP с точки зрения разработки высокопроизводительных приложений.
Laravel : сравнительно медленнее, чем Yii. Однако многие подходы помогают повысить производительность (оптимизация Classmap, кэширование конфигурации и маршрутов, оптимизация использования плагинов и т. д.).
Существует не так много типов проектов, для которых важна производительность в реальном времени. Например, социальная сеть сильно зависит от таких возможностей, и здесь Yii великолепен. Но и для многих других типов проектов Laravel тоже будет достаточно, чтобы обеспечить стабильную, бесперебойную работу.
4. Безопасность
Любой продукт должен защищать данные своих пользователей и обеспечивать надлежащее управление уровнями доступа для различных ролей пользователей. Надежная защита данных — один из важнейших критериев лояльности клиентов. Вот почему при выборе конкретного фреймворка для разработки вашего веб-приложения всегда учитывайте, удовлетворяют ли его возможности вашим требованиям безопасности. И Yii, и Laravel предоставляют механизмы для защиты паролем, аутентификации, защиты от SQL-инъекций, межсайтового скриптинга и других угроз безопасности.
Yii : Кроме того, Yii предлагает многофункциональную систему управления доступом на основе ролей.
Laravel : по умолчанию нет встроенных инструментов контроля доступа. Это не делает Laravel «плохим» с точки зрения безопасности, так как существует множество сторонних расширений для настройки высококлассного контроля доступа.
5. Установка и настройка проекта
Процесс установки довольно прост для обеих платформ.
Yii : доступно два основных варианта. Вы можете установить фреймворк из архивного файла, загрузив и распаковав его в доступную в Интернете папку. Другой вариант — установка через Composer. В этом случае вам необходимо сначала установить Composer, настроить токен доступа и установить Yii, выполнив соответствующую команду в доступной через Интернет папке.
Laravel : У вас есть выбор — вы можете установить его с помощью установщика Laravel или Composer, менеджера пакетов PHP. Также есть помощник, ускоряющий процесс установки.
6. Маршрутизация
Yii : Yii предлагает автоматическую маршрутизацию по умолчанию. Нет необходимости объявлять маршрут для каждого действия в контроллере.
Laravel : Как правило, вам нужно объявить маршрут к каждому действию контроллера. Кроме того, вы можете объявить несколько маршрутов в одном, используя маршрутизацию ресурсов. Он назначает типичные маршруты контроллеру в одной строке кода.
7. Генерация CRUD
Концепция CRUD (Create, Read, Update, Delete) представляет собой набор операций для обработки данных, хранящихся в базе данных. В веб-разработке приложение CRUD похоже на панель администратора для управления различными сущностями (данными) внутри приложения. Это позволяет использовать меньше кода для реализации правильного управления данными, облегчает контроль безопасности данных и позволяет избежать беспорядочного кода с большим количеством повторяющихся фрагментов для однотипных операций.
CRUD также влияет на конечных пользователей приложения. Большинство веб-приложений предоставляют пользователям возможность заполнять формы, добавляя новую информацию, искать существующие данные (например, описание продукта), редактировать некоторые данные и т. д. Все эти действия — это использование CRUD на стороне пользовательского интерфейса. Вот почему CRUD играет решающую роль в создании веб-приложений, их правильном функционировании и взаимодействии с конечными пользователями.
Yii : Он предлагает простой в использовании инструмент Gii, который позволяет создавать прототипы, создавая часто используемые фрагменты кода или полные контроллеры CRUD. Gii доступен через веб-интерфейс, где разработчики могут в интерактивном режиме создавать необходимые фрагменты. Также есть интерфейс командной строки для тех, кто предпочитает работать через консоль.
Laravel : он не предоставляет готовый графический интерфейс CRUD. Обычно разработчики используют сторонние генераторы CRUD Laravel, такие как CRUDBooster, Craftable или Laravel CRUD Generator.
8. Миграция
Если вы планируете разработку долгосрочного проекта, было бы здорово выбрать фреймворк с удобными механизмами миграции баз данных. Миграции позволяют перейти на новую структуру базы данных без потери данных из старой структуры. С точки зрения миграции обе платформы предлагают удобные инструменты, которые очень похожи с небольшими отличиями.
Yii : Yii предлагает полный инструмент для эффективной и удобной миграции. Он также позволяет генерировать фикстуры для заполнения информации.
Laravel : он предлагает сидер для простой передачи данных и плавного тестирования модулей. Опция заполнения данных также присутствует.
9. Тестирование
Обе платформы имеют хорошие возможности тестирования для обнаружения и отладки различных типов сбоев и сценариев неработоспособности системы.
Yii : предлагает PHPUnit и Codeception из коробки
Laravel : включает PHPUnit и различные компоненты тестирования Symfony, такие как Httpkernel, DomCrawler, Browserkit и т. д.
10. Отладка
Yii : Он предлагает встроенную консоль отладки для обработки запросов к базе данных, многоуровневого ведения журнала и ведения журнала запросов к базе данных. Существуют также сторонние расширения для других нужд отладки.
Laravel : этот фреймворк предлагает более полный набор инструментов для отладки из коробки. Доступна консоль отладки со стеком обратных вызовов, инструмент ведения журнала и Imho.
11. Удлинители
Оба каркаса оснащены удлинителями практически для любых нужд. Они помогают устранить различные недостатки фреймворка с помощью проверенных надстроек.
Yii : более 2800 расширений для добавления различных функций для улучшения приложения.
Laravel : доступно около 9000 расширений для настройки поведения веб-приложений в соответствии с потребностями проекта.
Оптимизированный бюджет и время на разработку, стабильная производительность и простота обслуживания — вот что вы получаете с KeyUA.
Свяжитесь с нами
TOP Проекты на основе Laravel и Yii
Чтобы оценить возможности обоих фреймворков, проверьте самые популярные проекты, разработанные с помощью Yii и Laravel.
CoderMap — Сообщество разработчиков
Это платформа на основе Yii, где разработчики могут общаться друг с другом в соответствии со своими интересами и профессиональными целями и находить вакансии в определенных местах. Здесь люди могут делиться своими закладками и собирать отзывы от других участников.
LUYA — система управления контентом
LUYA — это продвинутая веб-инфраструктура на основе Yii, которая содержит модули для управления контентом, администрирования, авторизации, тестирования и т. д. Вы можете использовать любую комбинацию этих модулей для создания собственного веб-приложения.
HumHub — программное обеспечение для социальных сетей
HumHub — это программное обеспечение с открытым исходным кодом на основе Yii и фреймворк для создания социальных сетей. Используя лучшие возможности производительности Yii в реальном времени, он предлагает мощные, но простые в использовании инструменты для общения и совместной разработки проектов.
Koel — приложение для персональной потоковой передачи аудио
Серверная часть этой службы персональной потоковой передачи разработана на Laravel, а клиентская часть написана на VueJS. Он использует несколько передовых технологий, таких как Flexbox, API перетаскивания, сетка CSS и т. д.
Cachet — Система страницы состояния
Это программное обеспечение с открытым исходным кодом на основе Laravel, которое сокращает время простоя. Это помогает компаниям отслеживать простои и различные системные сбои и сообщать о них клиентам, акционерам и командам.
Flarum — Приложение для форума
Flarum — это дискуссионная платформа на основе Laravel, которую можно интегрировать в веб-сайт. Если вам нужно создать сообщество и поддерживать открытые дискуссии между вашими клиентами и посетителями сайта, эта платформа с открытым исходным кодом — отличный вариант.
Итоги сравнения
Сравнивать Laravel и Yii довольно сомнительно. Оба фреймворка предоставляют широкие возможности, которые реализуются по-разному. В гонке производительности Laravel vs Yii нет абсолютного победителя.
Однако составление параллельных сводок может помочь выявить основные различия и определить, что лучше подходит для вашего проекта. Он включает в себя различные метрики, многоязычный интерфейс, двухфакторную аутентификацию, мощное создание отчетов и многие другие функции.
Yii vs. Laravel Comparison Table
Criterion | Yii | Laravel |
Technical requirements | PHP 4.5+ | PHP 5.4 + Расширение PHP JSON Расширение MCrypt PHP |
ORM (объектно-реляционное сопоставление) | DAO (объекты доступа к данным) ActiveRecord Doctrine 2 (via plugins) | DAO (Data Access Objects) ActiveRecord Doctrine 2 (via plugins) |
Project setup | Installation from an archive file Composer | Установщик Laravel Composer |
Маршрутизация | Автоматическая маршрутизация 5 | |
Validation | Scenario-based | Validation class, no scenario-based validation available |
CRUD Generation | Gii | Third-party CRUD generator GUI . Создание базовой панели администратора CRUD по умолчанию. |
Миграции | Миграционный класс | Миграционный класс Seeder class |
Testing | PHPUnit Codeception | PHPUnit Symfony testing components (DomCrawler, BrowserKit, and HTTPKernel) |
Debugging | Debugging Console Ведение журнала запросов к базе данных Многоуровневое ведение журнала | Консоль отладки Ведение журнала Imho (ограничено) |
Security | ACF (Access Control Filter) RBAC (Role-Based Access Control) OpenID OAuth and OAuth3 Authorization extension | RBAC (Role-Based Access Control ) Плагины ACL (список контроля доступа) ACF (фильтр контроля доступа) |
Расширения | 2800+ расширений 0 9000+ расширений |
Что бы вы ни сравнивали, трудно сказать, Laravel или Yii лучше. Каждый фреймворк имеет свои плюсы и минусы. Laravel более распространен среди других фреймворков PHP из-за его активной разработки, частых улучшений и крутой кривой обучения. Молодые разработчики предпочли бы начать с Laravel. Однако это не делает Yii «плохим» выбором. Просто меньше людей в отрасли используют его в настоящее время.
Заключительные мысли
Всемирная популярность Laravel сделала его победителем среди всех фреймворков PHP в 2021 году. Многие компании используют его как выбор №1 для всех проектов на основе PHP. Другие фреймворки часто даже не рассматриваются для веб-разработки. Будучи немного недооцененным, Yii имеет определенные технические преимущества по сравнению с Laravel. Опытные инженеры по-прежнему выбирают его для более глубокой настройки безопасности, более удобной маршрутизации и генерации CRUD.
Разработчики KeyUA имеют большой опыт использования всех современных PHP-фреймворков. Мы всегда обосновываем выбор Laravel или Yii для веб-разработки исходя из специфики проекта.