ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

MVC для Π²Π΅Π±: ΠΏΡ€ΠΎΡ‰Π΅ Π½Π΅ΠΊΡƒΠ΄Π°

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ MVC (Model, View, Controller) Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Β«Π² чистом Π²ΠΈΠ΄Π΅Β», Π±Π΅Π· привлСчСния ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, Π½Π΅ относящихся ΠΊ MVC структур ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ². ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ простого ΠΊ слоТному, поэтому ΠΏΠΎΠΊΠ° Π½Π΅ станСм Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ MVC – ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ HMVC (Hierarchical MVC). Π₯отя HMVC, нСсомнСнно, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ интСрСсСн для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ отмСняСт нСобходимости понимания Β«ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎΒ» MVC.

Π‘Ρ‚Π°Ρ‚ΡŒΡ Π² Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π°, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ‚Π΅, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ MVC), ΠΈΠ·ΠΎΠ±ΠΈΠ»ΡƒΠ΅Ρ‚ нСточностями ΠΈ Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ, само ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎ сути, являСтся Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ, Π° привСдСнная схСма просто напросто Π½Π΅ соотвСтствуСт Ρ‚ΠΎΠΉ, которая примСняСтся Π² Π²Π΅Π± Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° PHP – Π² особСнности.

НаиболСС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° MVC я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» Ρ‚ΡƒΡ‚:

Π¨Π°Π±Π»ΠΎΠ½ проСктирования MVC ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° Ρ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°: МодСль, ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ – Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ модификация ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ нСзависимо.

Π£Ρ‚ΠΎΡ‡Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β» Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ связи с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… популярных CMS ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Битрикса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΎΠΎΠ±Ρ‰Π΅ строятся ΠΈΠ· всСх Ρ‚Ρ€Ρ‘Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… MVC.
Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ слСдуСт ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ€ΠΎΠ»Π΅ΠΉ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, МодСли ΠΈΠ»ΠΈ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ, Π³Π΄Π΅ МодСль слуТит для извлСчСния ΠΈ манипуляций Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прилоТСния, ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этих Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π²Π΅Π±Ρƒ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ сСрвСром Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ HTML/CSS), Π° ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ управляСт всСм этим оркСстром.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ схСму Π²Π΅Π±-прилоТСния:

Рисунок 1

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния
На этом ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисунках ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½Ρ‹ΠΌΠΈ линиями ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ информация (такая, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ID Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ записи Π±Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅), Π° ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹ΠΌΠΈ – собствСнно Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π‘Π”, ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дискС, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти – этот вопрос Π»Π΅ΠΆΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° MVC). Π’ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π²Π΅Π±Ρƒ запрос ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ ходят ΠΏΠΎ HTTP, поэтому ΠΌΠΎΠΆΠ½ΠΎ условно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° этом рисункС ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ HTTP-запроса ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°, Π° ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹ΠΌΠΈ линиями – ΠΈΡ… Ρ‚Π΅Π»Π°.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Запрос 1, ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚, ΠΈ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚Π° (ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 4, станСт понятно ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… рисунков):

1. Π‘Ρ€Π°Π·Ρƒ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΠ± ошибкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ запросС Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ страницы ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«404 Not foundΒ»)

2. Если ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΠΉ Запрос 1 ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ, Ρ‚ΠΎ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся ΠΎΠ½ запросом Π½Π° просмотр ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ МодСли, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Save ΠΈΠ»ΠΈ Load (Запрос 2 Π½Π° Рис.2).

Рисунок 2

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния
Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: концСпция MVC Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ привязана ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ языку программирования, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ привязана ΠΈ ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ программирования. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π²Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ своё ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ MVC, ΠΏΡ€ΠΈ этом Π½Π΅ примСняя ООП, ΠΈ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ МодСль Π’ΠΎΠ²Π°Ρ€ для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π˜Ρ‚Π°ΠΊ, Π² зависимости ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ МодСли ΠžΡ‚Π²Π΅Ρ‚Π° 2 ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΉ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ для формирования ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Запрос 1:

3.1. Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ – ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ для сообщСния ΠΎΠ± ошибкС
3.2. Π’ случаС успСха – ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ для отобраТСния Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΈΠ±ΠΎ сообщСния ΠΎΠ± ΠΈΡ… ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ сохранСнии (Ссли Запрос 1 Π±Ρ‹Π» Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…).

Рисунок 3

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния
Вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€Π°Π²Π° доступа Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠ»ΠΈ МодСль), являСтся ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ достаточно многочислСнных споров, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ MVC Π½Π΅ описываСт Ρ‚Π°ΠΊΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² этом вопросС Π²Ρ‹Π±ΠΎΡ€ Π·Π° Π²Π°ΠΌΠΈ (ΠΈΠ»ΠΈ Π·Π° вас Π΅Π³ΠΎ сдСлали Π°Π²Ρ‚ΠΎΡ€Ρ‹ вашСго любимого Ρ„Ρ€Π΅ΠΉvΠ²ΠΎΡ€ΠΊΠ° ΠΈΠ»ΠΈ CMS).
ΠœΡ‹ Π² своСй ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ придСрТиваСмся Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:
ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ провСряСт Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Β«ΠΎΠ±Ρ‰Π΅ΠΉΒ» (Ρ‚.Π΅. нСзависящСй ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ запроса) коррСктности, соотвСтствиС трСбованиям МодСли ΠΊ валидности сохраняСмых Π΄Π°Π½Π½Ρ‹Ρ… провСряСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ МодСли, Π° ΠΏΡ€Π°Π²Π° доступа – ΠΌΠ΅Ρ‚ΠΎΠ΄ Access ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ класса User.

Для Π²Ρ‹Π·ΠΎΠ²Π° ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ Π² PHP ΠΈΠ½ΠΎΠ³Π΄Π° проСктируСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс (Π° Ρ‚ΠΎ ΠΈ нСсколько классов), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, View (это часто встрСчаСтся Π² описаниях MVC Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°), ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ являСтся Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ MVC.
Π’Π°ΠΊΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΉ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ шаблонами, Π° ΠΏΡ€ΠΈ использовании Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ€ΠΎΠ»ΡŒ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ³Ρ€Π°Π΅Ρ‚ сам ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€, Π° ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ (Ρ‚.Π΅. Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС нСпосрСдствСнно HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ) Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ layouts.

НС Π²ΠΏΠΎΠ»Π½Π΅ понятСн ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π°Π±Π·Π°Ρ†? Π—Π°Π±Π΅ΠΉΡ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ – это просто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ PHP-Ρ„Π°ΠΉΠ», Π° сам PHP устроСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π² случаС, Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для выполнСния Запроса 3 ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ include, ΠžΡ‚Π²Π΅Ρ‚ 3 ΠΈ ΠžΡ‚Π²Π΅Ρ‚ 4 (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Запрос 1?) ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ автоматичСски, срСдствами самого PHP.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π£ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…

Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ HTML-ΠΊΠΎΠ΄, ΠΏΡ€Π΅Π΄Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ Π²Π΅Π±-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ основной ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ (Ρ‚.Π΅. содСрТит Ρ‚Π΅Π³ doctype, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ head, ΠΊΠΎΠ΄ шапки страницы, ΠΈ Ρ‚.ΠΏ.), Π° – ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚ΠΎ ΠΆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ΄Π²Π°Π»Π° страницы.

Листинг 1. Π¨Π°Π±Π»ΠΎΠ½ product.tpl.php ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π’ΠΎΠ²Π°Ρ€Π΅ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΡƒΠΆΠ΅ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ $product):

Листинг 2. Π¨Π°Π±Π»ΠΎΠ½ error.tpl.php ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $error):

Листинг 3. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ product.php, слуТащий для отобоаТСния Π’ΠΎΠ²Π°Ρ€Π°, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π’Π΅, ΠΊΡ‚ΠΎ Π»ΡŽΠ±ΠΈΡ‚ красивый ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈ HTML.header ΠΈ HTML.footer Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… (ΠΎΠ½ΠΈ ΠΆΠ΅ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ) error.tpl.php ΠΈ product.tpl.php, ΠΈ навСрняка захотят вынСсти ΠΈΡ… Π² ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ product.save.php:

…. ΠΈ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ основноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ MVC – раздСляйтС ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, МодСль ΠΈ ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄ – ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ Π—Π»ΠΎ. Π§Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ?
ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ MVC ΠΊ HMVC!
Но это – Ρ‚Π΅ΠΌΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ MVC-прилоТСния

ВСория

Если ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ, Ρ‚ΠΎ MVC (model view controller) это Ρ‚Π°ΠΊΠΎΠΉ способ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π° ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эти Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС. Π’ ΠΈΡ‚ΠΎΠ³Π΅ получаСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ссли Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π²Ρ‹ сразу Π·Π½Π°Π΅Ρ‚Π΅ Π² ΠΊΠ°ΠΊΠΎΠΌ мСстС ΠΈΡΠΊΠ°Ρ‚ΡŒ. БСйчас всС популярныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ сущСствуСт Π΄Π²Π° лагСря: ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΡˆΠ΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π² модСлях. Π’ Ρ‚Π΅Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ знаю я (yii, laravel) Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…, Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто экзСмплярами ORM. Π£ yii кстати Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅ написано, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π°Π΄ΠΎ Π² модСлях, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ½ΠΈ сами Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΈΡˆΡƒΡ‚ Π΅Ρ‘ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…, довольно Π·Π°Π±Π°Π²Π½ΠΎ.

Π‘ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ, пишСм Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…. Π’Π°ΠΊΠΆΠ΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° происходит Π²Ρ‹Π·ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас ΠΏΠΎ сути экзСмпляры ORM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·Ρ‹ Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ измСнСния. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отправляСтся Π² Π²ΠΈΠ΄Ρ‹. Π’ΠΈΠ΄Ρ‹ cΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ нСбольшиС вставки PHP-ΠΊΠΎΠ΄Π° для ΠΎΠ±Ρ…ΠΎΠ΄Π°, форматирования ΠΈ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ….

Π•Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° MVC Page Controller ΠΈ Front Controller. Page Controller’ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Ρ…ΠΎΠ΄Π° (запросы ΠΊ сайту ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ нСскольким Ρ„Π°ΠΉΠ»Π°ΠΌ), ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° свой ΠΊΠΎΠ΄ отобраТСния. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Front Controller с ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π”Π°Π»ΡŒΡˆΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° создаём ΠΏΠ°ΠΏΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ App Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС.

Наш Service Locator. Ѐайл App.php

БСрвис Π»ΠΎΠΊΠ°Ρ‚ΠΎΡ€ Π½ΡƒΠΆΠ΅Π½ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π½Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нашСго прилоТСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас простоС mvc ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ registry (ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² yii сдСлано). А просто сохраняСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ прилоТСния Π² статичСскиС свойства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π•Ρ‰Ρ‘ App рСгистрируСт Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π ΠΎΡƒΡ‚Π΅Ρ€. Π€Π°ΠΉΠ» Router.php

Π€Π°ΠΉΠ» Db.php

Π­Ρ‚ΠΎΡ‚ класс ΡŽΠ·Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°ΡˆΠ°Π΅Ρ‚ массив ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ

Π€Π°ΠΉΠ» Config/Db.php

НашС ядро. Π€Π°ΠΉΠ» Kernel.php

Π―Π΄Ρ€ΠΎ обращаСтся ΠΊ Ρ€ΠΎΡƒΡ‚Π΅Ρ€Ρƒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ запускаСт дСйствия ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Π•Ρ‰Ρ‘ ядро ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΈΠ½ΡƒΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли Π½Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π€Π°ΠΉΠ» Controller.php

Π•Ρ‰Ρ‘ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс для Π½Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½ΡƒΠΆΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ΡŒ (ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄) Π²ΠΈΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ использованиС лэйаутов β€” шаблонов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΡ‚Π΅Ρ€ ΠΈ хэдСр.

Π€Π°ΠΉΠ» index.php

НС Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСксный Ρ„Π°ΠΉΠ» Π² ΠΊΠΎΡ€Π½Π΅:

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ Π²ΠΈΠ΄Ρ‹

Π Π°Π±ΠΎΡ‚Π° с нашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сводится ΠΊ созданию Π²ΠΈΠ΄ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ (Π² ΠΏΠ°ΠΏΠΊΠ΅ Controllers):

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РСализация MVC ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создания сайта-Π²ΠΈΠ·ΠΈΡ‚ΠΊΠΈ Π½Π° PHP

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

Как Π²Ρ‹ ΡƒΠΆΠ΅ догадались ΠΈΠ· названия ΡΡ‚Π°Ρ‚ΡŒΠΈ, сСгодня Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ самом популярном, Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ послС Singleton, шаблонС проСктирования MVC, хотя Ρ‚Π°ΠΊΠΎΠ΅ сравнСниС Π½Π΅ совсСм умСстно. ПониманиС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ MVC ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ нСприятных ситуаций Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°Π» ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π”Π°Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π», ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ шаблон MVC Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ простого сайта-Π²ΠΈΠ·ΠΈΡ‚ΠΊΠΈ.

ОглавлСниС

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

МногиС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с СдинствСнной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π½Π΅ подразумСвая, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ вырасти Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ систСму управлСния, Π½Ρƒ допустим, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ упаси Π±ΠΎΠ³, производством. И всё Π²Ρ€ΠΎΠ΄Π΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΈ классно, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написан β€” состоит Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ· костылСй ΠΈ Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄Π°. Код ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ с вСрсткой, запросами ΠΈ костылями, Π½Π΅ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΡŽ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ насущная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡, приходится с этим ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ, вспоминая Β«Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ΅ написано Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ?Β» ΠΈ ΠΏΡ€ΠΎΠΊΠ»ΠΈΠ½Π°Ρ‚ΡŒ сСбя Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ΡŒ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… проСктирования ΠΈ Π΄Π°ΠΆΠ΅ листали эти прСкрасныС ΠΊΠ½ΠΈΠ³ΠΈ:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ. Π’ΠΎ всяком случаС, я надСюсь Ρ‡Ρ‚ΠΎ Π·Π° ΠΏΠ°Ρ€Ρƒ часов Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MVC ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅ΠΆΠΈΡ‚ Π² основС всСх соврСмСнных Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Β«ΠΏΠΈΡ‰ΡƒΒ» для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ Π½Π°Π΄ Ρ‚Π΅ΠΌ β€” Β«ΠΊΠ°ΠΊ стоит Π΄Π΅Π»Π°Ρ‚ΡŒΒ». Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ приводится ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ссылок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ‡Π΅Π³ΠΎ состоят Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (ΠΏΠΎΠΌΠΈΠΌΠΎ MVC) ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

ΠŸΡ€ΠΎΠΆΠΆΠ΅Π½Π½Ρ‹Π΅ PHP-программисты вряд Π»ΠΈ Π½Π°ΠΉΠ΄ΡƒΡ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ для сСбя, Π½ΠΎ ΠΈΡ… замСчания ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ основному тСксту Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ кстати! Π’.ΠΊ. Π±Π΅Π· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, Π° Π±Π΅Π· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ тСория бСсполСзна, Ρ‚ΠΎ сначала Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ MVC, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

1. ВСория

Π¨Π°Π±Π»ΠΎΠ½ MVC описываСт простой способ построСния структуры прилоТСния, Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»Π΅Π³Ρ‡Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, тСстируСтся, сопровоТдаСтся ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ рСализуСтся.

Рассмотрим ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ схСму шаблона MVC (Π½Π° ΠΌΠΎΠΉ взгляд β€” это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ удачная схСма ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ я Π²ΠΈΠ΄Π΅Π»):

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ MVC модСль прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, прСдставлСниС ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ обСспСчиваСт взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ модСлью ΠΈ прСдставлСниСм.

Π’ΠΈΠΏΠΈΡ‡Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ MVC-прилоТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

МодСль β€” содСрТит бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ORM), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ) ΠΈ прСдоставлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΎΡ‡Π΅Π½ΡŒ толстой, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.
МодСль Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, относящиСся ΠΊ запросу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅.
МодСль Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ HTML ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ отобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Π½ΡƒΠΆΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π°Ρ….
Одна ΠΈ Ρ‚Π° ΠΆΠ΅ модСль, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: модСль Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ Π² административной части прилоТСния. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ вынСсти ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ, опрСдСляя Π² наслСдниках спСцифичныС для ΠΏΠΎΠ΄ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π’ΠΈΠ΄ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания внСшнСго отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Π’ΠΈΠ΄Ρ‹ cΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ нСбольшиС вставки PHP-ΠΊΠΎΠ΄Π° для ΠΎΠ±Ρ…ΠΎΠ΄Π°, форматирования ΠΈ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ….
НС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
НС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.
ΠœΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ свойствам ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, для получСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….
Π’ΠΈΠ΄Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ Π½Π° ΠΎΠ±Ρ‰ΠΈΠΉ шаблон, содСрТащий Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΎΠ±Ρ‰ΡƒΡŽ для всСх страниц (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΠ°ΠΏΠΊΡƒ ΠΈ ΠΏΠΎΠ΄Π²Π°Π») ΠΈ части шаблона, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ отобраТСния Ρ„ΠΎΡ€ΠΌ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ β€” ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π΅ Π·Π²Π΅Π½ΠΎ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π²ΠΈΠ΄Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ SQL-запросов. Π˜Ρ… Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² модСлях. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ HTML ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Π•Ρ‘ стоит Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Ρ‹.
Π’ Ρ…ΠΎΡ€ΠΎΡˆΠΎ спроСктированном MVC-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ΠΈ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько дСсятков строк ΠΊΠΎΠ΄Π°. Π§Π΅Π³ΠΎ, Π½Π΅ скаТСшь ΠΎ Stupid Fat Controllers (SFC) Π² CMS Joomla. Π›ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° довольно Ρ‚ΠΈΠΏΠΈΡ‡Π½Π° ΠΈ большая Π΅Π΅ Ρ‡Π°ΡΡ‚ΡŒ выносится Π² Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы.
МодСли, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ‡Π΅Π½ΡŒ толстыС ΠΈ содСрТат Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚.ΠΊ. структура Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°, содСрТащаяся Π² Π½ΠΈΡ…, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно спСцифична для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния.

1.1. Front Controller ΠΈ Page Controller

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаС, взаимодСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ посрСдством ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ссылкам. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ сСйчас Π½Π° Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ строку Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° β€” ΠΏΠΎ этой ссылкС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ тСкст. По Π΄Ρ€ΡƒΠ³ΠΈΠΌ ссылкам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, находящимся справа Π½Π° этой страницС, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ содСрТимоС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ссылка прСдставляСт ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

НадСюсь, Π²Ρ‹ ΡƒΠΆΠ΅ успСли Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… сайтов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ построСния адрСсной строки. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ web-прилоТСния. Π₯отя это ΠΈ Π½Π΅ всСгда Ρ‚Π°ΠΊ, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это явный Ρ„Π°ΠΊΡ‚.

Рассмотрим Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° адрСсной строки, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ показываСтся ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ тСкст ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ с мноТСством Ρ‚ΠΎΡ‡Π΅ΠΊ взаимодСйствия Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… с Π΄Π²ΠΈΠΆΠΊΠΎΠΌ phpBB. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ„ΠΎΡ€ΡƒΠΌΠ° происходит Ρ‡Π΅Ρ€Π΅Π· сцСнарий viewforum.php, просмотр Ρ‚ΠΎΠΏΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· viewtopic.php ΠΈ Ρ‚.Π΄. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, с доступом Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ физичСский Ρ„Π°ΠΉΠ» сцСнария, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ΅ΠΉ любимой CMS MODX, Π³Π΄Π΅ всС обращСния проходят Ρ‡Π΅Ρ€Π΅Π· index.php.

Π­Ρ‚ΠΈ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ для шаблона ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ страниц (Page Controller), Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ рСализуСтся ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ запросов (Front Controller). ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ страниц Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для сайтов с достаточно простой Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ запросов ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС дСйствия ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запросов Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π΅ΠΌΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, благодаря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ страниц. Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° страниц, Π° скаТу лишь, Ρ‡Ρ‚ΠΎ Π² практичСской части Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ запросов (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅).

1.2. ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ URL позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌ запросов с URL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ЧПУ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСмантичСски Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для поисковой ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ страницы, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи, URL ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
http://www.example.com/contacts.php?action=feedback

ΠŸΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС:

Π”ΡƒΠΌΠ°ΡŽ, ΠΏΠΎΡ‡Ρ‚ΠΈ всС Ρ‚Π°ΠΊ Ρ€Π°Π½ΡŒΡˆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ.

Π‘ использованиСм Π΄Π²ΠΈΠΆΠΊΠ° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ URL Π²Ρ‹ смоТСтС для отобраТСния Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΈΡ… запросов:
http://www.example.com/contacts/feedback

Π—Π΄Π΅ΡΡŒ contacts прСдставляСт собой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Π° feedback β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° contacts, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΈ Ρ‚.Π΄. ΠœΡ‹ Π΅Ρ‰Π΅ вСрнСмся ΠΊ этому вопросу Π² практичСской части.

Π’Π°ΠΊΠΆΠ΅ стоит Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ URL (ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ каТдая Ρ‡Π°ΡΡ‚ΡŒ URL) ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΎΠ±Π»Π°Π΄Π°Π΅ΠΌ достаточными тСорСтичСскими знаниями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Для Π½Π°Ρ‡Π°Π»Π° создадим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ:

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

ЗабСгая Π²ΠΏΠ΅Ρ€Π΅Π΄, скаТу, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ core Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы Model, View ΠΈ Controller.
Π˜Ρ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² дирСкториях controllers, models ΠΈ views. Π€Π°ΠΉΠ» index.php это Ρ‚ΠΎΡ‡ΠΊΠ° Π² Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€Π°ΠΉΠ» bootstrap.php ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ прилоТСния, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΡ€.

Π‘ΡƒΠ΄Π΅ΠΌ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ; ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» index.php ΠΈ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:

Π’ΡƒΡ‚ вопросов Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.

Π‘Π»Π΅Π΄ΠΎΠΌ, сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ„Π°Π»Ρƒ bootstrap.php:

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ строки Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ядра. ПослСдниС строки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ» с классом ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π΅Π³ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ статичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° start.

2.1. РСализация ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° URL

Пока Ρ‡Ρ‚ΠΎ отклонимся ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° MVC ΠΈ займСмся ΠΌΡ€Π°ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² .htaccess:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ всСх страниц Π½Π° index.php, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΈ Π½ΡƒΠΆΠ½ΠΎ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Front Controller?!

ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΡ‹ помСстим Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» route.php Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ core. Π’ этом Ρ„Π°ΠΉΠ»Π΅ опишСм класс Route, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ страниц.

Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Π² классС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΡ‡Π΅Π½ΡŒ упрощСнная Π»ΠΎΠ³ΠΈΠΊΠ° (нСсмотря Π½Π° ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ, Ρ‚.ΠΊ. написаниС ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ класса ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ заслуТиваСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Рассмотрим основныС момСнты…

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ explode производится Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ адрСса Π½Π° ΡΠΎΡΡ‚Π°Π²Π»ΡŽΡ‰ΠΈΠ΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ имя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, для ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, это ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ contacts ΠΈ имя дСйствия, Π² нашСм случаС β€” feedback.

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» ΠΌΠΎΠ΄Π΅Π»ΠΈ (модСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ) ΠΈ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, создаСтся экзСмпляр ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΈ вызываСтся дСйствиС, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ссли ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ описано Π² классС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΎ адрСсу:
example.com/portfolio
ΠΈΠ»ΠΈ
example.com/portfolio/index
Ρ€ΠΎΡƒΡ‚Π΅Ρ€ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

2.2. ВозвращаСмся ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MVC

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ core ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ route.php Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°: model.php, view.php ΠΈ controller.php

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

Напомню, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы, ΠΊ написанию ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ сСйчас ΠΈ приступим.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° model.php

Класс ΠΌΠΎΠ΄Π΅Π»ΠΈ содСрТит СдинствСнный пустой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² классах ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…. Когда ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ классы ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ всС станСт понятнСй.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° view.php

Π’ нашСм случаС ΠΎΠ±Ρ‰ΠΈΠΉ шаблон Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ header, menu, sidebar ΠΈ footer, Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ страниц Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ это сдСлано для упрощСния.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° controller.php

ΠœΠ΅Ρ‚ΠΎΠ΄ action_index β€” это дСйствиС, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΅Π³ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΡ€ΠΎΠ΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ классов ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².

2.3. РСализация классов ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² Model ΠΈ Controller, созданиС View’s

Π’Π΅ΠΏΠ΅Ρ€ΡŒ начинаСтся самоС интСрСсноС! Наш сайт-Π²ΠΈΠ·ΠΈΡ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· слСдущих страниц:

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

На ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ рисункС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ» template_view.php β€” это шаблон, содСрТащий ΠΎΠ±Ρ‰ΡƒΡŽ для всСх страниц Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС ΠΎΠ½ ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Для придания сайту ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° свСрстаСм CSS шаблон ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² наш сайт ΠΏΡƒΡ‚Π΅ΠΌ измСнСния структуры HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ CSS ΠΈ JavaScript Ρ„Π°ΠΉΠ»ΠΎΠ²:

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β», приводится ссылка Π½Π° GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Ρ‹ дСйствия ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ³ΠΎ шаблона.

2.3.1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³Π»Π°Π²Π½ΡƒΡŽ страницу

НачнСм с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° controller_main.php, Π²ΠΎΡ‚ Π΅Π³ΠΎ ΠΊΠΎΠ΄:

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄ generate экзСмпляра класса View ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ шаблона ΠΈ Π²ΠΈΠ΄Π° c ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ страницы.
Помимо индСксного дСйствия Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия.

Π€Π°ΠΉΠ» с ΠΎΠ±Ρ‰ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΠΌΡ‹ рассмотрСли Ρ€Π°Π½Π΅Π΅. Рассмотрим Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° main_view.php:

Π—Π΄Π΅ΡΡŒ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ΡŒΡΡ простая Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ PHP-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Для отобраТСния Π³Π»Π°Π²Π½ΠΎΠΉ странички ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… адрСсов:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм Π²ΠΈΠ΄Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΡ‹ рассмотрим Π΄Π°Π»Π΅Π΅.

2.3.2. Π‘ΠΎΠ·Π΄Π°Π΄Π°Π΅ΠΌ страницу Β«ΠŸΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎΒ»

Π’ нашСм случаС, страница Β«ΠŸΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎΒ» β€” это СдинствСнная страница ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ модСль.
МодСль ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Класс ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ содСрТится Π² Ρ„Π°ΠΉΠ»Π΅ controller_portfolio.php, Π²ΠΎΡ‚ Π΅Π³ΠΎ ΠΊΠΎΠ΄:

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ data записываСтся массив, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ get_data, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассматривали Ρ€Π°Π½Π΅Π΅.
Π”Π°Π»Π΅Π΅ эта пСрСмСнная пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° generate, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ: имя Ρ„Π°ΠΉΠ»Π° с ΠΎΠ±Ρ‰ΠΈΠΌ шаблон ΠΈ имя Ρ„Π°ΠΉΠ»Π°, содСрТащСго Π²ΠΈΠ΄ c ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ страницы.

Π’ΠΈΠ΄ содСрТащий ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ страницы находится Π² Ρ„Π°ΠΉΠ»Π΅ portfolio_view.php.

Π—Π΄Π΅ΡΡŒ всС просто, Π²ΠΈΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ.

2.3.3. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ страницы

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ страницы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Π˜Ρ… ΠΊΠΎΠ΄ досутпСн Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° GitHub, ссылка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ приводится Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β».

3. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² ΠΈΡ‚ΠΎΠ³Π΅:

ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ выглядит структура mvc прилоТСния

А Π²ΠΎΡ‚ Π² этой вСрсии я набросал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ классы (ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π²ΠΈΠ΄Ρ‹):

4. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π¨Π°Π±Π»ΠΎΠ½ MVC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ основы Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… ΠΈ CMS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ создавались для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ качСствСнно Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ срок. Π­Ρ‚ΠΎ стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ благодаря ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ уровня абстракции, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π» слоТности конструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ чСловСчСский ΠΌΠΎΠ·Π³.

Но, использованиС Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚ΠΈΠΏΠ° Yii ΠΈΠ»ΠΈ Kohana, состоящих ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ простых Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сайтов-Π²ΠΈΠ·ΠΈΡ‚ΠΊΠΎΠΊ) Π½Π΅ всСгда цСлСсообразно. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡƒΠΌΠ΅Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ MVC модСль, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Php, Html, CSS ΠΈ JavaScript ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ являСтся скорСС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ для изучСния CMF, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ истинно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π·Π° основу своСго Π²Π΅Π±-прилоТСния. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ½Π° Π΄Π°ΠΆΠ΅ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»Π° Вас ΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Π΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ CMS, основанныС Π½Π° MVC. Но, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ вСлосипСд с Β«Π±Π»Π΅ΠΊΠ΄ΠΆΠ΅ΠΊΠΎΠΌ ΠΈ ΡˆΠ»ΡŽΡ…Π°ΠΌΠΈΒ», Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ваши усилия Ρ€Π°Π·ΡƒΠΌΠ½Π΅Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈ Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ сообщСству ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°?!

P.S.: Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° пСрСписана с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ, оставлСнных Π² коммСнтариях. ΠšΡ€ΠΈΡ‚ΠΈΠΊΠ° оказалась ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Будя ΠΏΠΎ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΡƒ: коммСнтариям, обращСниям Π² Π»ΠΈΡ‡ΠΊΡƒ ΠΈ количСству ΡŽΠ·Π΅Ρ€ΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΠ²ΡˆΠΈΡ… пост Π² ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ΅ затСя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ этот пост оказалось Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΡƒΠΆ ΠΏΠ»ΠΎΡ…ΠΎΠΉ. К соТалСнию, Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‡Π΅ΡΡ‚ΡŒ всС поТСлания ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ большС ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ врСмСни… Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Ρ‚Π΅ таинствСнныС личности, ΠΊΡ‚ΠΎ минусовал ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…!

5. ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ссылок ΠΏΠΎ сабТу

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΡ‡Π΅Π½ΡŒ часто затрагиваСтся Ρ‚Π΅ΠΌΠ° Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² β€” это ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ Ρ‚Π΅ΠΌΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ состоят ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ…ΠΈΡ‚Ρ€ΠΎ увязанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ Π±Ρ‹ Π½Π΅ ΠΎΠ΄Π½Π° ΡΡ‚Π°Ρ‚ΡŒΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ± этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я Ρ€Π΅ΡˆΠΈΠ» привСсти здСсь Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ ссылок (ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я Ρ…ΠΎΠ΄ΠΈΠ» ΠΏΡ€ΠΈ написанииС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΡ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².

5.1. MVC ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹

5.2. Шаблонизация

PHP сам ΠΏΠΎ сСбС являСтся ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ всС ТС…

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *