Я даю поддержку уже развернутому php-приложению, но способ, которым он работает, новичок для меня, и я не знаю, как он делает то, что он делает.Как настроить PHP-контроллер
В основном, метод PHP вызывается с помощью пути, как синтаксис для извлечения данных, например:
<?php
// .....
$json = Request("http://_server/myfolder/abc/default/mymethod?data=something");
// Now $json var has some information.
?>
Странно то, как методы структурированы. До физического пути к папке «myfolder» существует сервер linux, вы знаете «.../apache/htdocs/myfolder /», но это IT. Кроме того, физическое расположение кода находится в другой структуре папок, где default/mymethod соответствует NO папкам вообще.
Разобравшись глубже, я обнаружил, что MyMethod соответствует методу PHP расположенного по адресу:
apache/htdocs/myfolder/protected/modules/abc/controllers/defaultcontroller.php
А внутри defaultcontroller.php есть что-то вроде этого:
<?php
// ....
Class DefaultController {
// ....
Public Function actionmymethod { // Notice the name of mymethod has 'action'
// more code
return $response;
}
}
?>
Im 100% убедитесь, что этот метод запущен при запуске вызова запроса, но я не знаю, как это делается.
Мой вопрос:
Как настроить это делается? Должно быть место, где вы связываетесь:
"http://_server/myfolder/abc/default/mymethod" with "actionmethod"
но где и как?
Мне нужно сделать копию этого бега, так что я могу назвать свою копию с чем-то вроде этого:
"http://_server/FOLDERCOPY/myfolder/abc/default/mymethod"
Я уже сделал копию новой структуры, но при вызове его, сервер не может найти новый метод/путь :(
EDIT *** Я нашел это в HTAccess находится в/MyFolder/
RewriteEngine on
RewriteBase /myfolder/
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
Я изменил копию в/FOLDERCOPY/MyFolder, но это, кажется, не работает :(
RewriteEngine on
RewriteBase /FOLDERCOPY/myfolder/
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
Благодаря
https://en.wikipedia.org/wiki/Rewrite_engine – Reeno
По существу, похоже, что это приложение многоуровневое. Части, которые выполняют запросы Запроса, используют клиентскую http-библиотеку, которая делает HTTP-запрос к URL-адресу. URL-адрес возвращает данные в формате json. Теперь для остальной части структуры вы должны посмотреть на index.php в корне doc сервера. Несомненно, он загружает фреймворк, и оттуда вы должны уметь отслеживать его компоненты. – gview
С точки зрения ваших контроллеров, действие - это просто имя обработчика. Где-то будет конфигурация маршрутизации, которая связывает конкретный маршрут с этим именем действия. После того, как вы выясните, какие рамки они использовали, вы сможете найти для этого документацию. – gview