新建主页,目录如下: home_pages.info.yml:特殊文件,只要出现”*.info.yml”文件,该目录将被声明为一个模块。
type: module // 声明模块
name: 'home_pages' // 模块名
core: '8.x' // drupal框架为8
package: '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规范。
<?php
namespace 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>