"¡Conduciré la bicicleta durante mucho tiempo!" La historia de la creación de "tu" marco

En algún lugar hace unos 8 años, necesitaba decidir sobre un marco PHP para la implementación de un proyecto. De los marcos, solo conocía de oídas zend y ModX Revo con Bitrix. Este último difícilmente podría llamarse un marco: eran CMS completos, de los cuales había una gran variedad en ese momento, y estaban en la cima de su popularidad. En ese momento, no buscaban desarrolladores de Laravel o Symfony, entonces se necesitaban administradores / moderadores / desarrolladores de Bitrix, Drupal, etc.





Y luego decidí escribir mi marco con "0". La tarea era simple: necesitaba trabajar con una base de datos y una interfaz API RESTful.





Entonces, comenzamos a recolectar dos ruedas.





"Perezoso y festivo entre semana"

DB





Comenzó que era un poco vago y no quería escribir consultas SQL directamente en la base de datos en absoluto, especialmente porque lo "tragué" en proyectos anteriores.





Esto me llevó a buscar algo ya hecho, y me topé con el entonces joven Medoo.in framework , y este resultó ser el descubrimiento # 1 . Habiendo "modificado" ligeramente el marco, se solucionó el problema con la base de datos.





Comenzando con la interfaz de la API RESTful

¿Lo que es? - Estas son solo solicitudes GET, POST, PUT, DELETE del cliente al servidor. No importa cuánto intenten darle un gran significado a esta palabra "DESCANSO".





¿Qué pasa con SOAP?

SOAP - REST XML GET POST. :)





REST' , . - , - - , .





MODX friendly() , (.htaccess) Apache. , :





RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
      
      



, :

, index.php , , 4 , .





http://.///-/ http://./index.php?q=//-/





! , .





!!!

, "", , , phpdocs.





- , - , 2- - public . - . Init .





GET, POST, .. $SERVER["METHOD"], .





http://domen.com/users/list/10/30 users.controller.php public function list($params) {}





-, .





, . MVC - // - , View.





2- MVC

MVC - - "".

- "" . , , " ", "".





- , . , View, () . html, , , . .





- . ? . , , - .





- . HTML, JSON, XML, ! .





5 , , 250 . REST , php, , 15% - !









, ...





...





" "

, ...





, , , "" VIEW .





TWIG - ! TWIG , , , - 100 "", "", ., .





, (object), , SOLID ( ) !









! -, !

...



...

, - !!!





" - "

. CODECEPTION.

Composer - - ! (vendors) .



- SILENIUM CODECEPTION - , .





Y el enlace de Codeception ¡



Ahora definitivamente me he ido a beber mi "Cuba Libre"!





La próxima vez contaré y compararé la misma tarea en 4 marcos populares: estos son Laravel, Symfony, Yii2 y Phalcon, intentaré hablar sobre sus "+" y "-" con un ejemplo simple, qué problemas encontré yo mismo y cómo los resolví ...



Gracias, anímate!








All Articles