Какие знания необходимы перед изучением php фреймворка?

Всем доброго времени суток. После изучения основ ООП в php и MVC взялся за изучение фреймворка Yii. Прочитал документацию, по Yii1. Cложилось впечатление, что мне не хватает знаний по php, для более лучшего понимания фреймворка. Хотя везде пишут, что достаточно знать основы ООП. Что необходимо изучить перед изучением фреймворка? Какую литературу посоветуете? Может посоветуете начать с другого фреймворка?
  • Вопрос задан
  • 3145 просмотров
Решения вопроса 2
@AlikDex
тут играет роль не столько знания пхп, сколько понимание принципов работы той или иной системы. Иными словами, необходимо изучить основные паттерны проектирования.
Для ознакомления неплохая статейка с хабра: habrahabr.ru/post/214285
Далее нагуглите думаю.
Ответ написан
@larionov_n
Попробуйте подумать, что у вас есть данные и вам нужно их обработать, чтобы получить результат. ООП - это просто инкапсуляция в капсулу методов для обработки данных объекта и капсула эта называется Объект, прототипом которого является класс. Могу сказать что вначале недостаточно ООП. Нужно и технологию программирования освоить и структуры данных знать - хотя бы основные, математику школьную.

Помимо еще и специфику, PHP - это Backend, а он впервую очередь получает запрос от клиента, обрабатывает его, если нужно запрашивает из BD нужные данные и возвращает ответ.

Соответственно: На какие вопросы надо ответить чтобы решать эти задачи в виде данных? Получить запрос (Обработать запрос (Что за запрос, удаление, апдейт, создание или фильтр какой, посмотреть его входящие параметры, прочитать HTTP заголовки, запрос можно классифицировать сложным URL адресом, который в свою очередь можно классифицировать и соотнести к какой-то реально сущность book/1?new=true&filter=asc, соответственно есть у вас есть Front Controller - то запрос по книжкам можно отнести к контроллеру Books (А контроллер часть паттерна MVC, контроллер будет работать с моделью, модель может напрямую общаться с BD или передаваться какому-то сервису который общается с BD (ORM, SQL with Driver). Соответственно вы в модели запрашиваете данные, проверяете данные, обновляете, внедряете бизнесс логику и только когда это сделали, возращаете данные готовые для пользователя, но только данные пользователю не интересны, вам нужно обернуть данные в HTML, проставить значения, интегрировать в верстку, тут уже приходят на помощь вьюшки, шаблонизаторы, так как ответ может быть не HTML, то модель нужно сериализовать в JSON. Соответственно все эти объекты у которых есть данные имеют методы для работы со своими данными. А общение между объектами путем отправки друг-другу сообщений (petya.give(beer, vasya). Отношение между ними будет осуществляться либо вложение объектов в друг-друга (композиция), либо копированием свойств между объектами (иерархия, наследование). Определять то что умеет объект, будет его интерфейс (где уже вступают в силу модификаторы доступа).

Соответственно кратко:

Обработка данных внутри методов (Алгоритмы и структуры данных)
Общение между объектами ООП (Объектно ориентированное программирование)
Архитектура приложения на уровне объектов (Дизайн паттерны, композиция, агрегация)
Выполнение последовательных операций (Императивное программирование)
Получение A и превращение A в B с хитроумными сплетениями (Функциональное программирование)
Выполнение двух операций одновременно и синхронизация между ними (Параллельное программирование)

Удачи!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Попробуйте составить структуру проекта hello world на изучаемом фреймворке.
Не получилось - значит у Вас нет достаточных знаний ООП. Изучайте.
Ответ написан
Комментировать
DJZT
@DJZT
Laravel - code for you
В чём именно у вас трудности возникают? Вообще вам необходимо знать ООП и иметь абстрактное мышление (для понимания MVC). Можете попробовать Laravel. Он не сложнее, но он сейчас более популярен.
P.S. Читайте статьи и разбирайте схемы по MVC
Ответ написан
booomerang
@booomerang
Разработчик крутизны
Я бы не стал сейчас изучать yii1, ввиду его устаревания. Там и композер не использовался, не было пространства имен и т.д. Что сейчас дефакто эти вещи используется везде.
Лучше возьми 2 ветку, если решил изучать yii фреймворк.
А поводу что нужно знать перед изучением фреймворка, я бы сказал, что лучше попробуйте пописать свой фреймворк или cms'ку, но максимально правильно, с паттернами и неймспейсами, эти штуки дадут вам колосальный опыт, и многие вещи встанут на свои места.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы