YIi

Да была одна "фатальная" ошибка в гостевой книге, я так и не смог рассказать тебе при встрече как хотел. Ты при выводе списка сообщений запрашивал данные пользователя: во-первых, прямо в шаблоне (нарушение принципа mvc), во-вторых, вручную составленным sql-запросом (плохо), в-третьих, по 1 запросу к бд на 1 элемент списка (очень плохо). А нужно было использовать возможности relational activerecord в yii, получить данные всех нужных (связанных) пользователей в контроллере, вместе с набором сообщений, технически одним запросом и без написания sql вручную.

Для тебя есть два важных направления развития.

  • 1. Зубрить сам пхп, писать много простого кода, постепенно осваивать стандартную библиотеку функций и классов, стандартные расширения пхп.
  • 2. Выучить популярную платформу разработки, в нашем случае это yii framework.

Для первого могу посоветовать просто читать официальный мануал по пхп, просто всё подряд, пока видно, что это имеет смысл. В начале там идёт описание самого языка - это самая важная и полезная часть, описание сухое, но максимально-полное, ну, официальный мануал же. Чтобы "набить руку" в написании кода, я бы на твоём месте придумывал для себя разнообразные простые задачи, которые можно решать за 10-20 минут одним простым скриптом безо всякого ооп. Ну, если позволяет время. Работа со строками, с массивами, с регулярками, работа с файлами, с сетью, разбор и манипуляция html, xml, работа с БД через PDO. Реальные задачи, которые "самому нужны" пишутся веселее, очевидно. Если не будешь писать код - ничему не научишься, понимать чужой код не достаточно, код нужно уметь писать.

По yii-фреймворку. Тебе необходимо разобраться с основными его компонентами. Фактически, тебе нужно пройтись по всё тому же официальному руководству и попробовать использовать всё, о чём там говорится, но "с нуля ручками". Кодогенерация практически не применима в реальных проектах, главы про неё читать не нужно, Нужно взять пустую папку, поднять в ней hello world на yii, а потом пробовать навинчивать на него вещи, речь о которых идёт в руководстве. Всё с нуля, всё вручную, про копипасту кода лучше вообще забыть, ну серьёзно. Руководство хорошо структурировано, можно просто идти по нему последовательно, попутно гугля статьи по теме. Рекомендую тебе сделать что-нибудь типа каталога статей, но с максимальным количеством "блэк-джэка и шлюх". Что-то такое по сути простое, где есть пользователи и разные уровни доступа, регистрация и авторизация, манипуляция данных с клиентской стороны (формочки-кнопочки) и со стороны администратора сайта (подробная админка всего и вся), где есть больше двух-трёх моделей, и некоторые из них связаны друг с другом "отношениями", где есть выборки по моделям с условиями и сортировкой, вывод списков данных, просмотр отдельных записей. Например, в каталоге статей обязаны быть категории статей и теги как минимум. Я могу написать более чёткое ТЗ, если тебе так будет легче. За 2.5 недели можно многое успеть, если тратить каждый день хотя бы 2-3 часа.

Могу сильно конкретизировать начальный этап. Нужно поднять hello world на yii, добавить конфиг yii, создать модель пользователя User, создать экшен посвящённый входу на сайт на нестандартном url'е "/login", на нём форма входа (выводится в скрипте вида\шаблоне), ошибки входа выводятся в форму средствами yii, для авторизации нужно сделать класс UserIdentity (есть в гайде), пароли в бд должны быть хешированы, не успешные попытки входа должны логгироваться средствами yii. Ещё нужно сделать экшен для регистрации "/register", сделать регистрацию пользователей с капчей. Прикрутить layout ("главный" шаблон). Ознакомиться с концепцией RBAC в yii. Вот. Это минимальная основа почти любого сайта. Срок - максимум неделя, быстрее - лучше.

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

Дополнительный важный аспект - это код-стиль, рекомендую читать https://github.com/php-fig/fig-standards... и https://github.com/php-fig/fig-standards... пока не будет отскакивать от зубов. В yii ужасный код-стиль, если что, не обращай на него внимание. По моим ссылкам максимально "каноничный" вариант, составленный группой профессионалов, часть из которых разрабатывает весьма масштабные популярные компоненты, библиотеки и платформы. Твой код должен быть вылизан до кристальной чистоты, каждый пробел, каждый перевод строки должен иметь значение, должен соответствовать набору правил.