2017 © Pedro PelΓ‘ez
 

library app-router

Routing in application

image

ceive/app-router

Routing in application

  • Monday, March 26, 2018
  • by Ceive
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

php-routing (Ceive\Routing)

Бущности:, (*1)

  • Π•Π΄ΠΈΠ½ΠΈΡ†Π° вычислСния (Matching)
    • Π˜ΠΌΠ΅Π΅Ρ‚ доступ ΠΊ ΠΏΡƒΡ‚ΠΈ, Π² дальнСйшСм ΠΈ ΠΊ самому HTTPRequest
  • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ (Router), (*2)

    • ВрактуСтся большС ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ стСк/Π½Π°Π±ΠΎΡ€ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ²
    • Пока ΠΊΠ°ΠΊ источник PatternResolver для ΠœΠ°ΡˆΡ€ΡƒΡ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π΅
    • Router::addPlugin - ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΊ событиям ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Плагин это кастомный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚(stdClass) ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹-ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΠΈ)
      • onBegin($matching); - ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ вычислСния Π² ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅
      • onConformed($matching, $route); - ΠŸΡ€ΠΈ сопоставлСнии Π¨Π°Π±Π»ΠΎΠ½Π° Π² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π΅
      • onCheckEnv($matching, $route); - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° окруТСния послС onConformed
      • onReached($matching, $route); - ΠŸΡ€ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ сопоставлСнии ΠΈ прохоТдСния ΠΏΡƒΡ‚ΠΈ ΠΏΠΎ шаблонам
      • onFinish($matching, $route); - Π‘Ρ‚Π΅ΠΊ событий Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ послС onReached
      • onPrepareRenderParams($route, $params); - ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для отрисовки
  • ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ (Route), (*3)

    • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ для получСния ΠΈΠΌΠ΅Π½ плСйсхолдСров
    • ВычислСниС match ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Matching
    • Π Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ шаблона ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ Π² качСствС подстановщиков ΠΈ ΠΏΡ€Π΅-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для кастомизации ΠΈ дальнСйшСго Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ
      • _matchingConfirmed(Matching $matching) - Доступны ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ шаблона, ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Matching ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ(Π‘ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ/ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ) ΠΈ ссылкой
      • _checkEnv(Matching $matching) - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° окруТСния, здСсь прСдполагаСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° HTTP запросов, отсуда ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ выброс Π² случаС Π½Π΅ ΡƒΠ΄Π°Ρ‡ΠΈ

НуТно ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄Π΅Π½ΠΈΡ‚ΡŒ ORM ΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ для Binding ORM Projection paths Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ Π΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ., (*4)

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, (*5)

  • БтатичСский, (*6)

    • Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π’ΠΎ происходит ошибка уровня Π½Π΅ соотвСтствия Π­Ρ‚ΠΎ ошибка Ρ‚ΠΈΠΏΠ° 404 not found
  • ДинамичСский continuable route, (*7)

    • Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π’ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ минуя Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ - Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡˆΠΈΠΉ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ\Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° HTTP запрос, (*8)

  • НаличиС SSL ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (http|https)
  • Π”ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя/ΠΏΠΎΠ΄-Π΄ΠΎΠΌΠ΅Π½/Π·ΠΎΠ½Π°
  • ΠœΠ΅Ρ‚ΠΎΠ΄ запроса (Method: GET POST PUT HEAD OPTIONS)
  • GET/POST ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса
  • JSON/XML ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈ POST запросС (вмСсто POST ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²)
  • Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ POST-params/Π€Π°ΠΉΠ»Ρ‹/JSON|XML (multipart/form-data | multipart)
  • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ (Accept | Accept-Encoding) application/json text/html text/*
  • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… запросов с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ рСакция Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ(CSRF protection) Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Accept: image/* Π½Π΅ сСмантичный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ проводящСму дСйствиС CRUD

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ сигнала ΠΊ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ (ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ / Ошибка уровня запроса(BAD REQUEST)), (*9)

brainstorm:, (*10)

  • Π›ΠΎΠΊΠ°Ρ†ΠΈΠΈ прилоТСния / Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ
  • ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ ДиспСтчСризации ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ORM(Π§Ρ‚Π΅Π½ΠΈΠ΅/ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π‘Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²) для Π‘ΠΈΠ½Π΄ΠΈΠ½Π³Π° ΠΈ Ρ‚.ΠΏ
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ HTTP(Атрибуты запроса, АргумСнты Ρ„ΠΎΡ€ΠΌ ΠΈ ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²)

The Versions

26/03 2018

dev-master

9999999-dev

Routing in application

  Sources   Download

Apache-2.0 Apache 2.0

The Development Requires

by Alexey Kutuzov