#php #yii
#php #yii
Вопрос:
Я тестирую фреймворк MVC для использования в моем проекте, и у меня есть несколько вопросов относительно YII.
-
Я создал модель с использованием GII, я знаю из java, что генерация кода предполагается вспомогательной, и большую часть времени ее не следует изменять, потому что вы можете захотеть восстановить в будущем, как это должно работать здесь?
-
Я создал CRUD из модели, и он предоставил для нее приятный графический интерфейс, я хочу сохранить графический интерфейс для стороны администратора, но я хочу сделать другой для стороны пользователя, каков здесь подход?
-
Если я решаю использовать какой-либо ORM в своем приложении, это означает, что мне нужно создать другую модель, и я вижу, что текущая модель наследуется от другой … проблема?
В общем
-
Что предполагается быстрее с точки зрения загрузки, CI? или YII?
-
поправьте меня, если я ошибаюсь, но архитектура 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, который определяет, какой пользователь имеет доступ к какому действию. Вы можете переопределять, настраивать или создавать свои собственные. Для простых систем доступа достаточно правил доступа по умолчанию и поведения при входе в систему