Пару месяцев назад Роб Аллен указал в своем блоге, что для SQL Server не существует адаптера Zend Framework PDO. Но он также отметил, что было бы легко написать один… так он и сделал: https://github.com/akrabat/Akrabat/blob/master/zf1/Akrabat/Db/Adapter/Pdo/Sqlsrv.php . Роб также упомянул, что было бы очень легко использовать его адаптер с Zend Framework, но я подумал, насколько это просто — об этом я и расскажу в этом посте. (Вырезать в погоню: он является очень легко.)
Я новичок, когда дело доходит до Zend Framework, поэтому я обратился к Робу за советом по началу работы. Он указал мне на учебник, который он написал, который вы можете скачать здесь: http://akrabat.com/zend-framework-tutorial/, Я очень рекомендую это руководство для начала работы с Zend Framework. Вы не только будете готовы к работе, но и будете лучше понимать архитектурный шаблон MVC (Model-View-Controller). На самом деле, я нашел урок настолько хорошим, что для меня было бы бесполезной попыткой улучшить его. Тем не менее, я взялся за учебник с идеей настроить вещи на Windows / IIS / SQL Server (используя адаптер, который я упоминал выше). Учебное пособие посвящено тому, как использовать ZF в Windows, но оно использует Apache и MySQL, поэтому я расскажу о «различиях» для работы с учебным пособием с целью запуска приложений на IIS и SQL Server. Я просто назову разделы учебника Роба, которые не применяются, или где я должен был изменить учебник. С этим в мыслях,этот пост будет наиболее целесообразным, если у вас также есть открытый учебник Роба, и вы можете переходить туда и обратно между ними.
Прежде чем я начну, вот моя соответствующая системная информация: Windows 7, IIS 7.5, SQL Server 2008 R2 Express, Zend Framework 1.11.1.
Учебные предположения
Поскольку я буду использовать IIS, предположения, относящиеся к Apache, в этом разделе не применяются. Однако вам необходимо убедиться, что у вас установлен модуль IIS URL Rewrite, который вы можете скачать здесь: http://www.iis.net/download/URLRewrite . Позже я покажу, как вы можете использовать модуль перезаписи URL для импорта правил перезаписи Apache в IIS.
Настройка Zend_Tool (Zend_Tool для Windows)
Только один комментарий к инструкциям в этом разделе: мне не нужно было перезагружаться после изменения переменной окружения PATH.
При использовании Zend_Tool в последующих разделах сделайте это из командной строки, которая запускается с правами администратора.
Получение нашего приложения с нуля
Я нашел, что проще всего создать пример приложения ( zf-tutorial ) в каталоге c: \ inetpub \ wwwroot (корневой каталог по умолчанию для IIS).
В этом разделе вам предлагается скопировать каталог library / Zend / из загруженного архива в каталог zf-tutorial / library / вашего проекта . Это также подходящее время, чтобы загрузить адаптер PDO Роба для SQL Server ( отсюда ) и скопировать каталог zf1 / Akrabat / в каталог zf-tutorial / library / вашего проекта . (Таким образом, директория zf-tutorial / library / вашего проекта теперь должна иметь два подкаталога: Zend и Akrabat .)
Настройка контроллера
В этом разделе вы протестируете установку Zend Framework. Прежде чем сделать это, вам необходимо импортировать правила переписывания Apache в IIS. Вот как это сделать:
1. Модуль перезаписи URL не поддерживает флаги –s или –l для правил перезаписи Apache. Чтобы обойти это, откройте файл .htaccess и измените условие перезаписи, содержащее –s на –f (которое поддерживает модуль), и удалите условие перезаписи, содержащее –l . Правила переписывания Apache теперь должны выглядеть так:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
На практике эти правила должны работать так же, как и исходные правила.
2. Откройте диспетчер IIS, перейдите в корневой каталог вашего проекта и откройте модуль перезаписи URL (дважды щелкните значок, как показано ниже).
3. Нажмите Импортировать правила …
4. Перейдите к файлу .htaccess проекта :
5. Нажмите Импорт .
6. Наконец, нажмите Применить на панели действий :
Теперь вы сможете успешно протестировать установку Zend Framework.
Конфигурация базы данных
Вместо добавления строк в файл application.ini, которые предлагаются в этом разделе, добавьте следующее:
resources.db.adapter = "Pdo_SqlSrv"
resources.db.params.adapterNamespace = "Akrabat_Db_Adapter"
resources.db.params.host = "ServerName\SQLEXPRESS"
resources.db.params.username = UserName
resources.db.params.password = Password
resources.db.params.dbname = DatabaseName
Создать таблицу базы данных
Вместо использования оператора CREATE TABLE (написанного для MySQL) используйте следующий оператор (написанный для SQL Server):
CREATE TABLE [dbo].[albums]( [id] [int] IDENTITY(1,1) NOT NULL, [artist] [varchar](100) NOT NULL, [title] [varchar](100) NOT NULL, CONSTRAINT [PK_albums] PRIMARY KEY CLUSTERED ( [id] ASC ) )
(Обратите внимание, что скрипт вставки данных в учебнике работает просто отлично.)
Это оно! Если вы будете следовать остальной части учебника, у вас должен быть пример приложения, использующего Zend Framework на Windows / IIS / SQL Server (с помощью адаптера PDO Роба). И, чтобы загрузить, вы должны понимать намного больше об архитектурном паттерне MVC.
Спасибо.
-Брайан