ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

РСализация систСмы. 
Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сСрвис "ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ сайтов" Π½Π° основС Zend Framework

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для тСкстовых Π±Π»ΠΎΠΊΠΎΠ² использовался Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ CKeditor, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оказался ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом ΠΏΡ€ΠΈ построСнии нашСй систСмы. Когда встал вопрос Π² Π½Π΅ΠΎΠ±Ρ…одимости использования Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π‘Ρ‹Π»Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π° огромная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. А Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π»ΡΡ вопрос возмоТности ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Zend_Layout Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ классичСский ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

РСализация систСмы. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-сСрвис "ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ сайтов" Π½Π° основС Zend Framework (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ описано ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»Π°ΡΡŒ наша систСма с ΡΠ°ΠΌΠΎΠ³ΠΎ Π΅Ρ‘ Π·Π°Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΡ. По Ρ…ΠΎΠ΄Ρƒ излоТСния ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ZF ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

РСализация сСрвСрной части РСализация нашСй систСмы Π΄Π° ΠΈ Π»ΡŽΠ±ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ построСнной Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Zend Framework начинаСтся с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Zend.

ZF Π½Π°Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбования Π½Π° ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ наша систСма.

ВрСбуСтся.

  • Β· PHP 5.1.4 (ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅)
  • Β· ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-сСрвСром Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° mod_rewrite

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консольного инструмСнта zf. bat ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π°Ρ€Ρ…ΠΈΠ²Π΅ вмСстС с ZF.

C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

C:> zf. bat create project snail_project.

Π’ ΡΠ²ΠΎΠ΅ΠΌ Π²Π΅Π±-сСрвСрС установитС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ public ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ структуры Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ для Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Если всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ установлСно Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ страничку Π½Π°Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽΡΡ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ Π² Π½Π°ΡˆΠ΅ΠΌ случаС это Π±Ρ‹Π».

http://fastsite.majordomo.ru.

Π’ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ нСсколько основных Ρ„Π°ΠΉΠ»ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ.

Index.php.

// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ZF.

set_include_path (implode (PATH_SEPARATOR, array (.

realpath (dirname (__FILE__). '/./library'),.

get_include_path (),.

)));

// ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ прилоТСния.

defined ('APPLICATION_PATH').

|| define ('APPLICATION_PATH', realpath (dirname (__FILE__). '/application'));

// ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ application environment.

defined ('APPLICATION_ENV').

|| define ('APPLICATION_ENV', (getenv ('APPLICATION_ENV')? getenv ('APPLICATION_ENV'): 'production'));

/**ΠŸΠΎΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Zend_Application */.

require_once 'Zend/Application.php';

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ application, bootstrap, ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌ.

$application = new Zend_Application (.

APPLICATION_ENV,.

APPLICATION_PATH. '/configs/application.ini'.

);

$application→bootstrap ();

$application→run ();

Zend_Application.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой срСдство для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы, ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Π΅ с ΠΌΠΎΠ΄ΡƒΠ»ΡΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ классы, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ зависимостСй. Он Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт установку Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ PHP ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Zend_Application прСдставляСт собой срСдство для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы, ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Π΅ с ΠΌΠΎΠ΄ΡƒΠ»ΡΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ классы, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ зависимостСй. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сконфигурированного MVC-прилоТСния, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запроса, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, объСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ зависит ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°: установка соСдинСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΎΠ² ΠΈ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (layouts), рСгистрация ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², рСгистрация ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² дСйствий ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ тСстов, сСрвисных скриптов, скриптов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для запуска Ρ‡Π΅Ρ€Π΅Π· ΠΊΡ€ΠΎΠ½. МоТно просто Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ свой скрипт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π½ΠΎ Ρ‡Π°ΡΡ‚ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, зависящиС ΠΎΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для запуска Ρ‡Π΅Ρ€Π΅Π· ΠΊΡ€ΠΎΠ½ MVC ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ лишним, Π° Π΄Π»Ρ сСрвисного скрипта ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слоя Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Zend_Application ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΏΡƒΡ‚Π΅ΠΌ инкапсуляции Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΎΠΉ ООП.

Zend_Application состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… областСй:

Zend_Application: Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ PHP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ include_paths ΠΈ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ (autoloading), инстанцируСт Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ класс.

Zend_Application_Bootstrap: прСдоставляСт интСрфСйсы для Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… классов. Zend_Application_Bootstrap_Bootstrap прСдоставляСт ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½ΡƒΠΆΠ΄ ΠΏΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π² ΡΠ΅Π±Ρ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ зависимостСй ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ рСсурсов ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ.

Zend_Application_Resource прСдоставляСт интСрфСйс для стандартных рСсурсов Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· экзСмпляр Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ класса, ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ рСсурсов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ класс для прилоТСния, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ Zend_Application_Bootstrap_Bootstrap ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, рСализуя интСрфСйс Zend_Application_Bootstrap_Bootstrapper. Входная Ρ‚ΠΎΡ‡ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, public/index.php) Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Zend_Application ΠΈ ΠΈΠ½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ:

Π’Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ окруТСния ΠžΠΏΡ†ΠΈΠΉ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠžΠΏΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, содСрТащСму Π² ΡΠ΅Π±Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ класс ΠΈ, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ:

Π›ΡŽΠ±Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для добавлСния Π² include_path.

Π›ΡŽΠ±Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбуСтся Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π›ΡŽΠ±Ρ‹Π΅ установки php. ini для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Имя класса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ имя, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ «Bootstrap»).

ΠŸΠ°Ρ€Ρ‹ прСфикс-ΠΏΡƒΡ‚ΡŒ для рСсурсов Π›ΡŽΠ±Ρ‹Π΅ рСсурсы для использования (ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· имя класса ΠΈΠ»ΠΈ ΠΈΡ… ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя) Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠžΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ массивом, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Zend_Config ΠΈΠ»ΠΈ ΠΏΡƒΡ‚ΡŒΡŽ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»ΡƒΡ‚ установку Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ PHP ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π”Π°Π»Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ прСдаСтся.

Zend_Controller.

Zend_Controller являСтся ядром систСмы MVC Π² Zend Framework. АббрСвиатура MVC — сокращСниС ΠΎΡ‚ «Model-View-Controller (модСль-Π²ΠΈΠ΄-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€), это ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ проСктирования, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для отдСлСния Π»ΠΎΠ³ΠΈΠΊΠΈ прилоТСния ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ прСдставлСния. Zend_Controller_Front Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ «Front Controller, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС запросы ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„Ρ€ΠΎΠ½Ρ‚-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ (front controller) ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ дСйствий (action controllers), Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… производится ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΌΡƒ URL.

БистСма Zend_Controller построСна с Ρ€Π°ΡΡ‡Π΅Ρ‚ΠΎΠΌ Π½Π° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· наслСдованиС ΠΎΡ‚ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… классов, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ интСрфСйсы ΠΈ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ‚Π½Ρ‹Π΅ классы, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… основу сСмСйства классов ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π΅Π· написаниС ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² дСйствий для наращивания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы ΠΈΠ»ΠΈ управлСния Сю.

Zend_Layout.

Zend_Layout Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ классичСский ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ «Π΄Π²ΡƒΡ…этапноС прСдставлСниС» (Two Step View pattern), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ содСрТимоС прилоТСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт собой шаблон сайта. Π’Π°ΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, ΠΈ Zend Framework ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Zend_Layout ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

АвтоматичСский Π²Ρ‹Π±ΠΎΡ€ ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ MVC Zend Framework-Π°.

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ области видимости для связанных с ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ³ΠΎ.

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ Π² ΡΠ΅Π±Ρ имя ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ скрипта ΠΌΠ°ΠΊΠ΅Ρ‚Π° (инфлСкция) ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡΠΊΡ€ΠΈΠΏΡ‚Ρƒ ΠΌΠ°ΠΊΠ΅Ρ‚Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², измСнСния скриптов ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… состояний; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ эти дСйствия Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… дСйствий ΠΈ ΡΠΊΡ€ΠΈΠΏΡ‚Π°Ρ… Π²ΠΈΠ΄Π°.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ скрипта Π²ΠΈΠ΄Π° (ΠΈΠ½Ρ„Π»Π΅ΠΊΡ†ΠΈΠΈ), Ρ‡Ρ‚ΠΎ ΠΈ ViewRenderer, Π½ΠΎ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ».

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π±Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ MVC Zend Framework-Π°.

Zend_View.

Zend_View являСтся классом для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²ΠΈΠ΄ (view) ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° модСль-Π²ΠΈΠ΄-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (model-view-controller). Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ скрипты Π²ΠΈΠ΄ΠΎΠ² ΠΎΡ‚ ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². Он ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт систСму ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ², Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Zend_View Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ систСмы шаблонов — Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PHP Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка шаблонов ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм шаблонов ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Π² Π²Π°ΡˆΠΈΡ… скриптах Π²ΠΈΠ΄Π°.

По ΡΡƒΡ‰Π΅ΡΡ‚Π²Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Zend_View состоит ΠΈΠ· Π΄Π²ΡƒΡ… шагов: 1. Π’Π°Ρˆ скрипт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° создаСт экзСмпляр Zend_View ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ этого экзСмпляра. 2. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Zend_View воспроизвСсти Π΄Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄, посрСдством этого производится ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Π°.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ список Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ воспроизвСсти Ρ‡Π΅Ρ€Π΅Π· Π²ΠΈΠ΄. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ этого:

// использованиС ΠΌΠΎΠ΄Π΅Π»ΠΈ для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΠΈ Π°Π²Ρ‚ΠΎΡ€Π°Ρ… ΠΊΠ½ΠΈΠ³.

$data = array (.

array (.

'author' => 'Hernando de Soto',.

'title' => 'The Mystery of Capitalism'.

),.

array (.

'author' => 'Henry Hazlitt',.

'title' => 'Economics in One Lesson'.

),.

array (.

'author' => 'Milton Friedman',.

'title' => 'Free to Choose'.

).

);

// Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ присваиваСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π°ΠΌ экзСмпляру Zend_View.

Zend_Loader:loadClass ('Zend_View');

$view = new Zend_View ();

$view→books = $data;

// ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ скрипт Π²ΠΈΠ΄Π° «booklist.php» .

echo $view→render ('booklist.php');

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π²ΠΈΠ΄Π° Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ скрипт Π²ΠΈΠ΄Π° «booklist.php». Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ скрипт PHP, ΠΊΠ°ΠΊ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅, Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ: ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ видимости экзСмпляра Zend_View, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ $this ссылаСтся Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ Zend_View. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, присваиваСмыС Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ для скрипта Π²ΠΈΠ΄Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ свойствами экзСмпляра Zend_View. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ скрипт Π²ΠΈΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

books): ?>

books as $key => $val): ?>

AuthorTitle
escape ($val['author']) ?>escape ($val['title']) ?>

НСт ΠΊΠ½ΠΈΠ³ для отобраТСния.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ escape () для экранирования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Zend_Session.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅ΡΡΠΈΡΠΌΠΈ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ срСдства PHP ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ систСмы написанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартных срСдств часто содСрТат ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ критичСскиС ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° ΠΏΠΎΠ·Π΄Π½ΠΈΡ… стадиях Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π±Π΅Π· ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… финансовых Ρ‚Ρ€Π°Ρ‚.

Zend_Auth.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ «Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅.

РСализация клиСнтской части ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сайты, Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сайтов ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹. БущСствуСт понятиС ΠΌΠ°ΠΊΠ΅Ρ‚Π° сайта (Π΄Π²ΡƒΡ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ, Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ). ΠœΠ°ΠΊΠ΅Ρ‚ сайта это Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², содСрТащих Π² ΡΠ΅Π±Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ. ΠŸΡ€ΠΈ этом Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ².

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎ Π²ΡΠ΅Ρ… CMS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π²ΡƒΡ… уровнСвая ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго видСнья ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΈ этом стандартный инструмСнт ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ ZF прСдоставил просто Ρ„Π°Π½Ρ‚Π°ΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ любой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π΅ Π·Π°Ρ‚рагивая Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Jquery UI.

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Jquery ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ интСрфСйс.

ВСхнология построСния интСрфСйса Drag & Drop, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°ΡΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅.

CKeditor.

Для тСкстовых Π±Π»ΠΎΠΊΠΎΠ² использовался Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ CKeditor, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оказался ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом ΠΏΡ€ΠΈ построСнии нашСй систСмы. Когда встал вопрос Π² Π½Π΅ΠΎΠ±Ρ…одимости использования Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π‘Ρ‹Π»Π° ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π° огромная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. А Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π»ΡΡ вопрос возмоТности ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ CKeditor оказался ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, фактичСски ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΠ² всС трСбования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ