Вопросы для новичков YII

#php #yii

#php #yii

Вопрос:

Я тестирую фреймворк MVC для использования в моем проекте, и у меня есть несколько вопросов относительно YII.

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

  2. Я создал CRUD из модели, и он предоставил для нее приятный графический интерфейс, я хочу сохранить графический интерфейс для стороны администратора, но я хочу сделать другой для стороны пользователя, каков здесь подход?

  3. Если я решаю использовать какой-либо ORM в своем приложении, это означает, что мне нужно создать другую модель, и я вижу, что текущая модель наследуется от другой … проблема?

    В общем

  4. Что предполагается быстрее с точки зрения загрузки, CI? или YII?

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

Спасибо

Комментарии:

1. Поправьте меня, если я ошибаюсь, но, похоже, ООП Java действительно не справится с программированием в среде без состояния. 🙂

Ответ №1:

1) Обычно модели работают нормально после генерации, и большую часть времени нет необходимости что-либо менять. Если вы добавляете поле в свою базу данных и вам нужно его повторно создать, когда вы это сделаете, у вас в gii появится новый код, который вы можете скопировать / вставить. Обычно вам не нужно этого делать, когда я добавляю поля в базу данных, я добавляю эти поля в модель «вручную». Очень просто и быстро, поверьте мне

2) используйте шаблоны. Создайте новый шаблон в своих представлениях макета и назначьте его контроллерам внешнего интерфейса с помощью $this->layout = ‘//my//layout’;

3) Реализации Yii AR для меня достаточно. Не могу ответить на эти вопросы, но у вас не должно возникнуть никаких проблем.

4) Зависит от того, какое приложение вы используете. Я работал с CI и Yii, я предпочитаю yii из-за времени разработки и скорости.

5) Вы «правы» в этом вопросе.

Комментарии:

1. Спасибо, что касается 2. Мне тоже нужен другой контроллер? поскольку используется сгенерированный crud, удаление выполняется только для зарегистрированных пользователей. Я предполагаю, что этот логин нужно заменить моей собственной логикой, верно?

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

3. Извините, я забыл вопрос об удалении. В вашем контроллере есть метод accesRules, который определяет, какой пользователь имеет доступ к какому действию. Вы можете переопределять, настраивать или создавать свои собственные. Для простых систем доступа достаточно правил доступа по умолчанию и поведения при входе в систему