2014-11-15 4 views
1

Я хотел бы направить php-скрипт из Vendor. Я использовал Composer для управления базой данных (https://github.com/vrana/adminer/). Источник этого приложения является: поставщик/Врана/adminer/adminer/index.phpSymfony2 - маршрутизация php-приложения от поставщика

Я хотел бы создать маршрутизатор, чтобы использовать это приложение, например, когда я звоню URL-адрес myweb.com/adminer, он должен загрузить что источник: vendor/vrana/adminer/adminer/index.php

Можно ли это сделать через routing.yml? Что-то вроде этого:

adminer: 
    resource: "Vendor/vrana/adminer/adminer/index.php" 
    prefix: /adminer 

Или как это можно сделать?

ответ

0

Это не возможно через 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 в вашем браузере, и вы сделали.

0

я решил что-то подобное с помощью шаблона, но у меня есть чешская версия, только один файл:

//app/Resources/views/adminer.html.php

<?php 
    include(__DIR__.'/../../../vendor/vrana/adminer/adminer/index.php'); 
?> 

и маршрут от Controler

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 Теперь адрес YourSite/adminer

1

Это действительно легко.

Создайте регулярный маршрут, а затем включите 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}