Скорошните теми на даката (и техните отговори) ме заинтригуваха (мерси дака
) и реших да поразуча някой фреймуърк, реших това да е Symfony.
Създадох проект, подкарах го, добавих някои контролери по модела в pdf-книгата и всичко работи - и точно това ми е проблема

Просто се чудя как така в папката src/AppBundle/Controller слагам файлове, които автоматично фрейма ги намира, търси по коментарите и изпълнява метода под тях.
Ето пример: слагам в горната директория файл с произволно име (someco.php) и вътре клас "someco" без да спазвам никакви конвенции и т.н. със следното съдържание:
След това отварям http://localhost:8000/app_dev.php/qwerty/7 и по някакъв автомагически начин фрейма намира файла someco.php, вижда @Route, прочита го, вижда че матчва на url-то и изпълнява метода под коментара popopop() като подава параметър "7".
На всичкото отгоре ако сменя $qw на $erty, дава грешка - очевидно прочита и името на параметъра и го сравнява с това, което съм дал в @Route.
Интересно е също, че каквото и име да дам на метода, той пак се изпълнява...
Ако може някой да обясни какво се случва тук :shock: че тези магийки не са ми познати

п.п. google-нах за php annotations и намерих обяснение как става това с четенето на коментари, но изобщо не ми е ясно защо е направено така ?
Създадох проект, подкарах го, добавих някои контролери по модела в pdf-книгата и всичко работи - и точно това ми е проблема
Просто се чудя как така в папката src/AppBundle/Controller слагам файлове, които автоматично фрейма ги намира, търси по коментарите и изпълнява метода под тях.
Ето пример: слагам в горната директория файл с произволно име (someco.php) и вътре клас "someco" без да спазвам никакви конвенции и т.н. със следното съдържание:
PHP:
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
class someco {
/**
* @Route("qwerty/{qw}")
*/
public function popopop ($qw) {
return new Response("Hello! $qw");
}
}
След това отварям http://localhost:8000/app_dev.php/qwerty/7 и по някакъв автомагически начин фрейма намира файла someco.php, вижда @Route, прочита го, вижда че матчва на url-то и изпълнява метода под коментара popopop() като подава параметър "7".
На всичкото отгоре ако сменя $qw на $erty, дава грешка - очевидно прочита и името на параметъра и го сравнява с това, което съм дал в @Route.
Интересно е също, че каквото и име да дам на метода, той пак се изпълнява...
Ако може някой да обясни какво се случва тук :shock: че тези магийки не са ми познати
п.п. google-нах за php annotations и намерих обяснение как става това с четенето на коментари, но изобщо не ми е ясно защо е направено така ?