包括symfony2 ansd中模块(捆绑包)中的管理部分,从其他模块和模板调用它们
在CodeIgniter中,我使用的是HMVC扩展,我的模块可以采用以下结构:包括symfony2 ansd中模块(捆绑包)中的管理部分,从其他模块和模板调用它们,symfony,Symfony,在CodeIgniter中,我使用的是HMVC扩展,我的模块可以采用以下结构: modules/ admin_auth admin_core admin_menu admin_templates flashnews flashnews_latest footer gallery pages/ control
modules/
admin_auth
admin_core
admin_menu
admin_templates
flashnews
flashnews_latest
footer
gallery
pages/
controllers/
admin.php
pages.php
models/
mdl_pages.php
views/
admin/
page_add.php
page_list.php
pages_front_list.php
posts
posts_latest
templates
videos
这允许我将管理部分包含到我的模块中,并将其调用到管理核心和管理菜单模块
这里用更多的细节(最后一种方法)解释:
http://philsturgeon.co.uk/blog/2009/07/Create-an-Admin-panel-with-CodeIgniter
类似的事情可以在Symfony2中完成吗?如果是的话,我可以在哪里找到一些关于如何实现类似结构的教程,因此模块中包含了管理部分(控制器和视图)。我在找,但没有找到类似的东西
有没有哪本书详细介绍了这一点,即如何使用包含amdin部分的模块创建管理员?我认为您误解了Symfony2提供给您的内容。我将尝试为您的用例解释其中的一些 我所理解的 您想在您的网站上创建一个管理面板。这是一种常见的情况 怎么办 您应该为整个内容创建一个捆绑包。如
AdminBundle
一步一步地
让我们看看Symfony2目录结构。这里有一段摘录
project/
app/
config/
config.yml
parameters.yml
cache/
AppKernel.php
src/
Acme/
DemoBundle/
Controller/
Resources/
config/
public/
views/
AcmeDemoBundle.php
vendor/
symfony/
autoload.php
web/
.htaccess
app.php
app_dev.php
整个项目
目录就是您的应用程序如果需要,它可以包含许多不同的网站,也可以只是一个网站 您的应用程序逻辑(本例中的网站)应位于
src
文件夹中,作为捆绑包委托
您可以阅读更多关于或
前端逻辑
因此,在本例中,您可能有一个FrontBundle
,其中包含前端逻辑,如下所示
project/
src/
Acme/
FrontBundle/
Controller/
IndexController.php
Resources/
views/
Index/
pages.html.twig
layout.html.twig
Acme\FrontBundle\Controller\IndexController
服务
这是您想要添加某些组件的逻辑类。
实体
控制器
Acme\AdminBundle\Controller\PagesController
创建一个bundle就可以了。也许你可以在你提供的链接上开始或阅读关于@Touki的内容,这里没有关于管理面板的内容。阅读Phil Sturgeon的文章来更好地了解我想要做什么吗?只需将您的管理服务、视图、控制器或任何功能打包到您自己的AdminBundle
。或者你可以使用一个现成的捆绑包,比如@Touki,我想这不是一个解决方案。我希望我的所有管理资料,属于该模块有在这个模块,而不是在另一个模块。也许我只是不理解你的方法。你能给我一些示例教程吗?他们正在创建一个具有管理功能的捆绑包,并且所有内容都在同一个budle中,例如PagesBudle?好吧,我会试试;)。这并不完全是我想要的,但我会看看Symfony CMF
<?php
namespace Acme\FrontBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class IndexController extends Controller
{
/**
* @Route("/pages")
* @Template
*/
public function pagesAction()
{
$em = $this->getDoctrine()->getManager();
// Note that we fetch from AdminBundle
$pages = $em->getRepository('AcmeAdminBundle:Page')->findAll();
return array('pages' => $pages);
}
}
project/
src/
Acme/
FrontBundle/
AdminBundle/
Controller/
PagesController.php
Entity/
Page.php
Resources/
views/
Pages/
add.html.twig
edit.html.twig
layout.html.twig
Services/
AdminAuth/
AdminCore/
<?php
namespace Acme\AdminBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
/**
* @Route("/admin/pages")
*/
class PagesController extends Controller
{
/**
* @Route("/edit")
* @Template
*/
public function editAction()
{
// Edit
}
/**
* @Route("/add")
*/
public function addAction()
{
// Add
}
}