Статьи

Использование Zend Framework и драйвера PDO_SQLSRV

Пару месяцев назад Роб Аллен   указал в своем блоге, что для 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.

Спасибо.

-Брайан