1

我想从供应商路由 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

或者怎么可能做到这一点?

4

3 回答 3

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');
}

在路由.yml

admin_mysql_manager:
    path: /mysqlclient
    defaults: { _controller: YourBundle\Controller\YourController::mysqlClientAction}
于 2017-02-08T08:19:03.647 回答
0

通过 symfonys 是不可能的routing.yml,因为这需要启动应用程序内核,它位于app.php. 但是您可以将管理员设置为另一台服务器。

例如,如果您使用apache ,请输入/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在浏览器中调用即可。

于 2014-11-15T11:44:32.050 回答
0

我通过模板解决了类似的问题,但我有捷克语版本,只有一个文件:

//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 现在地址是 yoursite/adminer

于 2016-01-27T20:58:21.387 回答