Content management system Zend Framework 2 CMS文件结构

Content management system Zend Framework 2 CMS文件结构,content-management-system,zend-framework2,directory-structure,Content Management System,Zend Framework2,Directory Structure,我正在尝试基于Zend Framework 2构建一个简单的内容管理系统。问题是我不知道文件夹结构应该是什么样的 到目前为止,我必须牢记以下解决方案: A.构建一个通用的“管理”模块,该模块具有多个控制器,如登录控制器、页面控制器、帖子控制器,每个控制器都有自己的操作 B.为每个组件构建一个模块,例如:具有adminController和frontendController的Pages模块 我确信上面的解决方案都不是正确的,但找不到任何固溶体或书籍来提供。我看了一下gotCMS,但注意到这一个,

我正在尝试基于Zend Framework 2构建一个简单的内容管理系统。问题是我不知道文件夹结构应该是什么样的

到目前为止,我必须牢记以下解决方案:

A.构建一个通用的“管理”模块,该模块具有多个控制器,如登录控制器、页面控制器、帖子控制器,每个控制器都有自己的操作

B.为每个组件构建一个模块,例如:具有adminController和frontendController的Pages模块


我确信上面的解决方案都不是正确的,但找不到任何固溶体或书籍来提供。我看了一下gotCMS,但注意到这一个,即,将所有数据(如布局视图)保存在数据库中,这不是一个解决方案

建造新东西没有对错之分。就我个人而言,我会选择B。我甚至不会像你那样命名控制器(我会对它们进行更多的分解,比如NewsAddController、NewsEditController、NewsDetailsController等等)。然后我会有一个AdminModule,它将简单地显示一个带有特定“AdminNavigation”的新布局。这个AdminNavigation可以通过其他模块填充(例如,NewsModule将通过module.config.php将自己的管理路由注入AdminNavigation)

尽管这是第一个alpha解决方案,但我致力于这一解决方案,我更愿意称之为内容管理框架

Ensemble的管理在ZfcAdmin上运行。因此,您可以插入一个博客模块,该模块在ZfcAdmin的路由下只有一个管理控制器。但您也可以使用导航页面结构管理页面(如文本)。所有内容部分(文本、博客等)都是独立的模块

所以我建议你看一看,你也可以看看我们的,这只是挂钩到合奏。我知道目前文档很少,但如果我们达到某种beta稳定性,我们将更多地关注文档

“您的系统B”的主要好处是,您可以在需要时插入模块。它们都提供自己的配置、控制器、模型和视图。从开发人员的角度(在composer中加载,在application config中启用)安装它们很容易,并且您可以轻松地用自己的视图覆盖任何视图

TL;DR:选择结构B,看一看合奏


/编辑:看到你对山姆的回答发表评论:是的,你必须这么做。在集成中,您可以指定一个管理路由并将其创建为。因为前端和后端都是一样的。

所以如果我选择B,那么在module.config.php配置中的每个模块中,我必须为每个后端或前端功能构建路由。NewsDetailsCOntroller路由到主NewsEditController路由到admin?部分。编辑和详细信息都路由到新闻模块。布局有什么变化。我按照github上的说明,克隆了Ensable SampleApplication运行php composer.phar安装,但我得到了“进程”git clonegit://github.com/doctrine/DoctrineORMModule.git“D:\xampp\htdocs\SampleApplication\vendor\条令/条令orm模块”&&cd/D“D:\xampp\htdocs\SampleApplication\vendor\条令/条令orm模块”&&git远程添加生成器”git://github.com/doctrine/DoctrineORMModule.git“&&git fetch composer”超过了300秒的超时时间。这是我访问应用程序时收到的错误消息致命错误:未捕获异常“RuntimeException”,消息为“无法加载ZF2”。运行
php composer.phar install
或定义ZF2_PATH环境变量。'in D:\xampp\htdocs\SampleApplication\init_autoloader.php:32堆栈跟踪:#0 D:\xampp\htdocs\SampleApplication\public\index.php(9):include()#1{main}在第32行的D:\xampp\htdocs\SampleApplication\init#autoloader.php中抛出“好的,在再次尝试之后,所有依赖项似乎都被加载了,但我得到了以下错误:“注意:未定义的索引:D:\xampp\htdocs\SampleApplication2\vendor\employee\kernel\config\services.config.php中的cmf\u路由,第152行可捕获的致命错误:参数1传递给employee\kernel\Parser\Route::setModuleRoutes()必须是数组类型,给定null,在第155行的D:\xampp\htdocs\SampleApplication2\vendor\employee\kernel\config\services.config.php中调用,并在第62行的D:\xampp\htdocs\SampleApplication2\vendor\employee\kernel\src\kernel\Parser\Route.php中定义,如果我将其从application.config.php中删除,管理面板就会工作。@TudorRavoiu该示例已经有一段时间没有更新了。我的错,让我检查一下,我会尽快在这里发布更新