Em algum lugar, cerca de 8 anos atrás, eu precisei decidir sobre um framework PHP para a implementação de um projeto. Dos frameworks, eu sabia apenas por ouvir dizer zend e ModX Revo com Bitrix. Este último dificilmente poderia ser chamado de estrutura - eram CMS completos, dos quais havia uma grande variedade na época, e estavam no auge de sua popularidade. Naquela época, eles não estavam procurando por desenvolvedores Laravel ou Symfony, então administradores / moderadores / desenvolvedores de Bitrix, Drupal, etc. eram necessários.
E então decidi escrever meu framework com "0". A tarefa era simples - eu precisava trabalhar com um banco de dados e uma interface API RESTful.
Então - começamos a coletar duas rodas.
"Preguiçoso e feriado nos dias de semana"
DB
Comecei que eu estava um pouco preguiçoso e não queria escrever consultas SQL diretamente no banco de dados, especialmente porque eu "engoli" isso em projetos anteriores.
Isso me levou a procurar algo pronto e me deparei com a então jovem estrutura de Medoo.in , e essa acabou sendo a descoberta nº 1 . Tendo "modificado" ligeiramente o framework, o problema com o banco de dados foi resolvido.
Introdução à interface RESTful API
O que é isso? - Essas são apenas solicitações GET, POST, PUT, DELETE do cliente para o servidor. Não importa o quanto eles tentem colocar um grande significado na palavra "REST".
E quanto ao 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 - , .
E o link do Codeception
Now I definitivamente foi beber meu "Cuba Libre"!
Da próxima vez que contarei e compararei a mesma tarefa em 4 frameworks populares - estes são Laravel, Symfony, Yii2 e Phalcon, tentarei falar sobre seus "+" e "-" com um exemplo simples, quais problemas eu mesmo encontrei e como eu os resolvi ...
Obrigado, anime-se!