Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2020-04-01 | 137 |
5.00
из
|
Заказать работу |
|
|
Для вывода ссылок для администраторских действий необходимо проверка является ли пользователь администратором. Так как администратор всего один в системе и разделение прав не используется, то достаточно лишь проверки на авторизованность пользователя: if(Yii::app()->user->isGuest).
После того как были выведены все ссылки, были доработаны представления форм с учетом специфики моделей и правил валидации. Для этого использовались статические методы CHtml, ответственные за вывод полей ввода формы. Наиболее часто используемые методы CHtml для форм:
1. CHtml::activeLabelEx(<модель>,<имя св-ва>) - выводит заголовок поля ввода, где заголовок берется из метода attributeLabels модели, а так же помечает его красной *, если оно обязательное(имеет валидатор required).
2. CHtml::activeTextField(<модель>,<имя св-ва>) - выводит текстовое поле ввода.
. CHtml::activeTextArea(<модель>,<имя св-ва>) - выводит textarea-поле ввода.
4. CHtml::submitButton(<имя кнопки>) - выводит кнопку для отправки формы на сервер.
Для добавления фотографий использовалось расширение SwfUpload, использование которого подробно описано на странице руководства.
Настройка кэширования, многоязычности и «красивых» ссылок
После того как все основные действия по доработке каркаса выполнены, осталось добавить поддержку больших нагрузок (кэширования), настроить многоязычность и красивые ссылки.
Для активации кэширования в файле конфигурации было добавлено описание компонента приложения cache с классом CFileCache, отвечающим за хранение кэша в локальных файлах.
Для настройки кэширования в контроллерах использовался компонент COutputCache, описанный в методе filters контроллера:
array(
// Компонент отключен для администраторских действий
|
'COutputCache -create, update, upload',
// Срок годности
'duration'=>24*3600*365,
// зависимости
'dependency'=>array(
'class'=>'CChainedCacheDependency',
'dependencies'=>array(
// по глобальному изменению pm_time
new CGlobalStateCacheDependency('pm_time'),
// по глобальному изменению cu_time CGlobalStateCacheDependency('cu_time'),
),
),
// данные в кэше отличаются по категории, сортировке, страницам, языку
'varyByParam'=>array('category','sort','page','lang'),
// и по статусу авторизованности пользователя
'varyByExpression'=>'Yii::app()->user->isGuest',
// кэш используется только для GET-запросов
'requestTypes'=>array('GET'),
),
где cu_time - последнее время обновления категорий, а pu_time - товаров и меняются по событию сохранения модели.
Так как, по-умолчанию, приложение уже поддерживает многоязычность с помощью класса CPhpMessageSource, который хранит переводы в php-файлах перевода, то в проекте использовался именно этот способ хранения.
Каждое сообщение перевода относится к какой-либо категории. Сообщения переводов хранятся по следующему пути: protected/messages/<код языка>/<имя категории>.php. Файлы переводы содержат в себе ассоциативный массив, где ключем является фраза на исходном (английский) языке, а значение - переведенное для данного кода (русский, например).
Для перевода сообщения, фреймфорк yii предоставляет статический метод Yii::t(<имя категории>,<сообщение>), а для хранения текущего языка в ссылке в файл конфигурации было подключено стороннее расширение в качестве компонента приложения urlManager: LangUrlManager.
Для активации «красивых», человекопонятных ссылок компонент приложения urlManager был настроен следующим образом:
'urlManager'=>array(
'class'=>'application.extensions.urlManager.CLangUrlManager',
//формировать ссылку в формате /route/p1/v1/p2/v2/...
'urlFormat'=>'path',
'rules'=>array(
// код языка всегда расположен впереди ссылки
'<lang:(en|ru|ro)>'=>'/price',
'<lang:(en|ru|ro)>/<_c>'=>'<_c>',
'<lang:(en|ru|ro)>/<_c>/<_a>'=>'<_c>/<_a>',
'<lang:(en|ru|ro)>/text/index/<page:.*>'=>'text/index',
),
// не выводить index.php в ссылке
'showScriptName'=>false,
),
а в корневой папке сайта (www) был добавлен файл.htaccess с активацией и настройкой mod_rewrite в web-сервере apache:
|
Options +FollowSymLinks*/*on%{REQUEST_FILENAME}!-f%{REQUEST_FILENAME}!-d. index.php
ЗАКЛЮЧЕНИЕ
В Yii вложено много возможностей которые выделяют этот фреймворк на фоне остальных и делают разработку с его помощью очень быстрой и приятной.
Вот небольшой список который стоит выделить:
1. Отличная поддержка. Для русскоязычных пользователей на официальном форуме фреймворка создан собственный раздел где вы всегда можете получить ответы на свои вопросы. Плюс к этому мною было созданно русскоязычное сообщество <http://groups.google.com/group/yii-framework/> которое постоянно пополняется новыми материалами.
. Помощь от разработчика фреймворка. Большой плюс поддержки Yii - это возможность в любой день пообщаться и задать вопросы разработчику Yii на форуме. Было замечено что он практически каждый день просмотривает и отвечает на вопросы на форуме, помогает советами и полезными "фишками". Вы всегда можете написать ему личное сообщение и быть уверены что получите самый правильный ответ по вашему вопросу. К сожалению, разработчик фреймворка плохо знает русский язык, поэтому сообщения просим излагать ему на английском или китайском.
. Полная поддержка ООП. Фреймворк полностью заточен под пятую версию php что позволяет поддерживать весь функционал при обьектно ориентированном программировании. Разработчики не пошли на поддержку php4 в ущерб гибкости и удобства ооп. В связи с этим фреймворк не будет работать на php4, но зато отлично покажет себя на php5! Если вы знаете что такое ООП и умеете его использовать в php - тогда Yii лучший выбор для вас.
. Генератор кода. Yii предоставляет отличный встроенный генератор исходного кода. Указав лишь основные параметры - Yii генерирует для вас общую структуру приложения которая будет содержать все необходимые модели/контроллеры/отображения для старта. В yii версии 1.1 обещают браузерный генератор кода с еще большим функционалом!
. Темы. Благодаря встроенной поддержке тем вы можете изменять дизайн вашего приложения в пару нажатий клавиш.
. Защита. Все стандартные классы Yii заточены под высокий уровень безопасности что при умелом обращении позволяет полностью обезопасить свой сайт от Sql-Inj, XSS, CSRF и других атак.
Если честно то перечислять можно долго, и пятнадцатью пунктами список естественно не ограничится. Много из того что написанно выше - и стало для меня стимулом перейти на Yii Framework.
БИБЛИОГРАФИЯ
1. Джордж Шлосснейгл.Профессиональное программирование на PHP,2006.
2. Максим Кузнецов, Игорь Симдянов, Сергей Голышев.PHP 5 на примерах. БХВ-Петербург.2005, ISBN: 5-94157-670-6
3. А.Кухарчик. PHP: обучение на примерах. 240 стр., 2004 г. Издательство: Новое знание. ISBN 985-475-050-7
4. Леон Аткинсон, Зеев Сураски. PHP 5. Библиотека профессионала,2006
5. Джон Коггзолл. PHP 5. Полное руководство,2006.
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!