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!