新建主页,目录如下:
home_pages.info.yml:特殊文件,只要出现”*.info.yml”文件,该目录将被声明为一个模块。
type: module // 声明模块name: 'home_pages' // 模块名core: '8.x' // drupal框架为8package: 'custom' // 在控制台扩展中,属于custom下拉列表version: 1.0 // 该模块版本号
**
home_pages.routing.yml:特殊文件,定义该模块的路由器。
home_page:path: '/'defaults:_title: '首页'_controller: '\Drupal\home_pages\Controller\HomePagesController::myFunction'requirements:_permission: 'access content'
解释:访问根目录时,请求页面的标题为“首页”,请求会被路由到home_pages模块下的控制器HomePagesController,并执行myFunction方法。访问该URL的用户必须具备权限“access content”,这个权限匿名用户也具备,因此是公开界面。
home_pages.libraries.yml:第三方动态库,支持引入JS、CSS
common-libs:js:js/common-functions.js: {}css:css/common.css: {}home_page_lib:js:js/home_page_lib.js: {}css:css/home_page_lib.css: {}
解释:声明两个库,这里仅声明。PHP和TWIG都可以通过attach引用common-libs或home_page_lib。
src:PHP代码,遵循PSR-4规范。
<?phpnamespace Drupal\home_pages\Controlelr;use Drupal\Core\Controller\ControllerBase;/*** 定义逻辑控制器类*/class HomePagesController extends ControllerBase {public function myFunction() {return array('theme'=>'home_pages','attached'=>['library'=>['home_pages/common-libs','home_pages/home_page_lib']]);}}
js:拓展目录,引入JS脚本代码。
new Vue({data: {index: 1,....},....});
templates:前端模板目录,存放前端代码,格式这里为TWIG,与HTML类似。
<div>${ index }</div>
