Я хотел бы направить PHP-скрипт от поставщика.
Я использовал Composer для установки управления базой данных (https://github.com/vrana/adminer/).
Источник этого приложения: vendor / vrana / adminer / adminer / index.php
Я хотел бы создать маршрутизатор для использования этого приложения, например, когда я вызываю URL myweb.com/adminer,
он должен загрузить этот источник: vendor / vrana / adminer / adminer / index.php
Можно ли это сделать через routing.yml? Что-то вроде этого:
adminer:
resource: "Vendor/vrana/adminer/adminer/index.php"prefix: /adminer
Или как это возможно сделать?
Это не возможно через Symfonys routing.yml
, так как для этого нужно запустить ядро приложения, которое находится в app.php
, Но вы можете просто настроить администратора как другой сервер.
Если вы используете апаш например напишите в /etc/apache2/sites-enabled/local
<VirtualHost *:80>
ServerName local.adminer
DocumentRoot /YourPathToAdminer
DirectoryIndex adminer.php
<Directory /YourPathToAdminer>
AllowOverride all
Allow from all
</Directory>
LogLevel debug
</VirtualHost>
И в твоем /etc/hosts
добавить куда-нибудь
127.0.0.1 local.adminer
Просто позвони http://local.adminer
в вашем браузере и все готово.
Это действительно легко.
Создайте обычный маршрут, затем включите adminer.php и верните его из контроллера. Не забудьте поставить этот маршрут под брандмауэром
В контроллере:
use Symfony\Component\HttpFoundation\Response;
public function mysqlClientAction() {
return new Response(include_once $this->container->getParameter('kernel.root_dir') . '/Resources/views/adminer.php');
}
в routing.yml
admin_mysql_manager:
path: /mysqlclient
defaults: { _controller: YourBundle\Controller\YourController::mysqlClientAction}
Я решил что-то подобное через шаблон, но у меня есть чешская версия, только один файл:
//app/Resources/views/adminer.html.php
<?php
include(__DIR__.'/../../../vendor/vrana/adminer/adminer/index.php');
?>
и маршрут от Контролера
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
/**
* @Route("/adminer", name="adminer")
* @Template(engine="php")
*/
public function adminerAction()
{
return $this->render('::adminers.html.php');
}
и поместите adminer.php и переименуйте в /vendor/vrana/adminer/adminer/index.php
Теперь адрес ваш сайт / администратор