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

Π‘Π»ΡƒΡ‡Π°ΠΈ использования PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°

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

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСдпочтСния ΠΈ ΠΏΠΎΡ‚рСбности. Для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° использованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠΈ процСсса программирования, Π° Π΄Π»Ρ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это зависит ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π½Ρ профСссионализма, Π½ΠΎ, Π² Ρ†Π΅Π»ΠΎΠΌ, PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Zend… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Π»ΡƒΡ‡Π°ΠΈ использования PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСми возмоТностями Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнтария, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π΅ΠΌΠ°Π»Ρ‹ΠΉ Π±Π°Π³Π°ΠΆ Π·Π½Π°Π½ΠΈΠΉ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом для Π±Ρ‹ΡΡ‚Ρ€ΠΎΡ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ языка программирования ΠΊΠ°ΠΊ PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прСдпочтСния ΠΈ ΠΏΠΎΡ‚рСбности. Для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° использованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠΈ процСсса программирования, Π° Π΄Π»Ρ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это зависит ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π½Ρ профСссионализма, Π½ΠΎ, Π² Ρ†Π΅Π»ΠΎΠΌ, PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΈ Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

ΠžΠ±Π·ΠΎΡ€ соврСмСнных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния удобства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, скорости, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ 6 популярных PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.

Zend framework.

Zend framework — это PHP-framework, созданный ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Zend, сотрудники ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСпосрСдствСнными Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ языка PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ традициям ΠΈ Π΄ΡƒΡ…Ρƒ PHP — базируСтся Π½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…, друТСствСнной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ тСстируСмом ΠΊΠΎΠ΄Π΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ «agile» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² [23].

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности:

  • Β· всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° PHP 5 ΠΈ E_STRICT — совмСстимы;
  • Β· встроСнный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°;
  • Β· Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° «ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ» с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ зависимостями ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²;
  • Β· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ шаблон проСктирования MVC, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ PHP-скрипты прСдставлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, and Informix Dynamic Server;
  • Β· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ классы для создания, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, получСния email с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ mbox, Maildir, POP3 ΠΈ IMAP4;
  • Β· гибкая подсистСма ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ мноТСства Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰.

НСдостатки:

  • Β· слишком большой;
  • Β· чСрСсчур многослойный;
  • Β· ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ Π±Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ;
  • Β· ΠΎΡ‡Π΅Π½ΡŒ слоТная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π±Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания шаблонов проСктирования слоТСн Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ;
  • Β· слабоС русскоязычноС сообщСство;
  • Β· ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ… Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚ΠΎΠ²;
  • Β· ΠΎΡ‡Π΅Π½ΡŒ мСдлСнная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ развития.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ CakePHP.

CakePHP являСтся Π±Ρ‹ΡΡ‚Ρ€ΠΎΡ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ для PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, обслуТивания ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ извСстный шаблон проСктирования MVC, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-рСляционных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ….

Основной ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΎΠΉ CakePHP являСтся ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ продуктивности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΡŒ программисту Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавался ΠΊΠ°ΠΊ ΠΊΠ»ΠΎΠ½ популярного языка Ruby on Rails, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Π±Ρ‹Π»ΠΈ заимствованы ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° [24].

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

  • Β· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ограничСния доступа (ACL), управлСния сСссиями, cookies, прСдставлСния Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Π² Π²ΠΈΠ΄Π΅ Nested Sets);
  • Β· Ρ…Π΅Π»ΠΏΠ΅Ρ€Ρ‹ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹) для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ„ΠΎΡ€ΠΌ, дСлСния Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρ‹ (paginate), управлСния кэшСм, JavaScript (Π² Ρ‚ΠΎΠΌ числС ΠΈ AJAX);
  • Β· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ сайта Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ языков;
  • Β· гСнСрация SQL-запросов, Π² Ρ‚ΠΎΠΌ числС для Ρ‚Π°Π±Π»ΠΈΡ† с ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ, ORM;
  • Β· гСнСрация CRUD-страниц для сущностСй, Router: mapResources c Put Delete Get Post;
  • Β· Π°Π²Ρ‚ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Bake;
  • Β· ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ;
  • Β· консольная интСграция, класс Shell ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Task;
  • Β· ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ (ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ прилоТСния), ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Simple Test;
  • Β· слои (layouts) ΠΈ Ρ‚Π΅ΠΌΡ‹ (Themes);
  • Β· Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния — быстрая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° основана Π½Π° ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ… (взят курс Π½Π° Ruby On Rails).

НСдостатки:

  • Β· низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ;
  • Β· слабая докумСнтация;
  • Β· Π½Π΅Ρ‚ сформированного русскоязычного сообщСства;
  • Β· слоТный Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ACL;
  • Β· строгиС соглашСния ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ;
  • Β· низкая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ развития.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Kohana.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ «Kohana» Π±Ρ‹Π» создан ΠΊΠ°ΠΊ Π²Π΅Ρ‚Π²ΡŒ PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° CodeIgniter ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ «Blue Flame». Π“Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ отвСтвлСния Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ для общСствСнности ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±Ρ‹Π»ΠΈ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ошибок Π² CodeIgniter. Rick Ellis — ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† CodeIgniter ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ» Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ собствСнной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ ΠΈΡŽΠ»Π΅ 2007 «Blue Flame» Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² «Kohana», для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π°Π²Ρ‚орскими ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ [25].

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

  • Β· высокая Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ;
  • Β· Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Π΅ срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΡ„илирования;
  • Β· простота Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ;
  • Β· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ MVC;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° UTF-8;
  • Β· ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ;
  • Β· распространяСтся ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ BSD, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободСн ΠΊΠ°ΠΊ для коммСрчСского, Ρ‚Π°ΠΊ ΠΈ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΠΎΠ³ΠΎ использования.

НСдостатки:

  • Β· докумСнтация мСстами ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ, Ρ€Π΅Π΄ΠΊΠΎ обновляСтся;
  • Β· слабая обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями;
  • Β· слаборазвитый Ρ„ΠΎΡ€ΡƒΠΌ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² общаСтся Ρ‡Π΅Ρ€Π΅Π· IRC;
  • Β· Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ;
  • Β· Π½Π΅Ρ‚ сформированного русскоязычного сообщСства.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ CodeIgniter.

CodeIgniter — популярный MVC Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, написанный Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования PHP, для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… Π²Π΅Π±-систСм ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ EllisLab, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π ΠΈΠΊΠΎΠΌ Эллисом (Rick Ellis) ΠΈ ΠŸΠΎΠ»ΠΎΠΌ Π‘ΡƒΡ€Π΄ΠΈΠΊΠΎΠΌ (Paul Burdick) [26].

CodeIgniter ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ простота, которая достигаСтся благодаря ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ:

  • Β· Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ докумСнтация;
  • Β· Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠ΅ сообщСство;
  • Β· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π΄Π°Π΅Ρ‚ свободу программисту, Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ структурных ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΉ;
  • Β· программисту Π½Π΅ Ρ‚рСбуСтся ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки;
  • Β· CodeIgniter Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ практичСски Π½Π° Π»ΡŽΠ±ΠΎΠΌ хостинговом ΠΏΠ»Π°Π½Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ PHP вСрсии 5.1 ΠΈ Π²Ρ‹ΡˆΠ΅;
  • Β· CodeIgniter считаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π±Ρ‹ΡΡ‚Ρ€Ρ‹Ρ… ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… MySQL, PostgreSQL, MSSQL, SQLite, Oracle.

НСдостатки:

  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PHP4 тянСт Π·Π° ΡΠΎΠ±ΠΎΠΉ лишний ΠΊΠΎΠ΄;
  • Β· Π½Π΅Ρ‚ встроСнной систСмы раздСлСния ΠΏΡ€Π°Π²;
  • Β· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ развиваСтся;
  • Β· Π½Π΅ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ CSRF-Π°Ρ‚Π°ΠΊΠ°ΠΌ.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Symfony.

Symfony — PHP Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написан Π½Π° PHP5. АрхитСктура ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для создания слоТных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Symfony — свободный каркас, написанный Π½Π° PHP5, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Model-View-Controller (MVC). Symfony ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Π±-прилоТСниями, позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π΅Π±-программиста. Symfony бСсплатСн ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT [27].

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСство Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (MySQL, PostgreSQL, SQLite ΠΈΠ»ΠΈ любая другая PDO-совмСстимая Π‘Π£Π‘Π”);
  • Β· встроСнныС классы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с email;
  • Β· гибкая систСма шаблонов Π² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ;
  • Β· встроСнный ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° французского спонсора Sensio;
  • Β· ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΎΠΊ;
  • Β· высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

НСдостатки:

  • Β· слоТСн Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ;
  • Β· ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²;
  • Β· отсутствиС русской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ;
  • Β· Π½Π΅Ρ‚ встроСнной ORM;
  • Β· Π½Π΅Ρ‚ русскоязычного сообщСства.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Yii.

Yii — это высокоэффСктивный, основанный Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΉ структурС PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ максимально ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НазваниС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΠ»ΠΎ «Yes It Is» [22].

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ:

  • Β· высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ;
  • Β· интСрфСйсы DAO ΠΈ ActiveRecord для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (PDO);
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • Β· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ страниц ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²;
  • Β· ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок;
  • Β· Π²Π²ΠΎΠ΄ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡ Ρ„ΠΎΡ€ΠΌ;
  • Β· использованиС AJAX ΠΈ ΠΈΠ½Ρ‚Сграция с jQuery;
  • Β· гСнСрация Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ PHP-ΠΊΠΎΠ΄Π° для CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (скаффолдинг);
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅ΠΌ оформлСния для ΠΈΡ… Π»Ρ‘Π³ΠΊΠΎΠΉ смСны;
  • Β· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ;
  • Β· ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;
  • Β· автоматичСскоС тСстированиС;
  • Β· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° REST.
  • Β· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ русскоязычноС сообщСство.
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ