"Vou dirigir a moto por muito tempo!" A história da criação de "seu" framework

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!








All Articles