- Drupal 8 Module Development
- Daniel Sipos
- 394字
- 2021-07-02 12:22:38
The route
Inside our module, we will need to create our routing file that will hold all our statically defined routes. The name of this file will be hello_world.routing.yml. By now, I assume that you understand what the deal is with the file naming conventions in a Drupal 8 module. However, in any case, this is another YAML file in which we will need to put the YAML formatted data:
hello_world.hello:
path: '/hello'
defaults:
_controller: '\Drupal\hello_world\Controller\HelloWorldController::helloWorld'
_title: 'Our first route'
requirements:
_permission: 'access content'
This is our first route definition. It starts with the route name (hello_world.hello), followed by all the necessary info about it, underneath, in a YAML-formatted multidimensional array. The standard practice is to have the route name start with the module name it is in, followed by route qualifiers as needed.
So, what does the route definition contain? There can be many options here but, for now, we will stick with the simple ones that serve our purpose.
First, we have a path key, which indicates the path we want this route to work on. Then, we have a defaults section, which usually contains info relevant to the handlers responsible for delivering something when this route is accessed. In our case, we set the controller and method responsible for delivering the page, as well as its title. Finally, we have a requirements section, which usually has to do with conditions that need to be met for this route to be accessible (or be hit)—things such as permissions and format. In our case, we will require users to have the access content permission, which most visitors will have. Don't worry; we will cover more about access in a later chapter.
That is all we need for our first route definition. Now, we will need to create the Controller that maps to it and can deliver something to the user.
Before we do that, let's look at an example of a very common routing requirement you will most likely have to use really soon. We don't need this for the functionality we're building in this chapter, so I won't include it in the final code. However, it's important that you know how this works.
- Java語言程序設計
- Learning Microsoft Windows Server 2012 Dynamic Access Control
- Web Application Development with MEAN
- The Data Visualization Workshop
- Apache Mahout Clustering Designs
- 運用后端技術處理業(yè)務邏輯(藍橋杯軟件大賽培訓教材-Java方向)
- Arduino Wearable Projects
- C++ System Programming Cookbook
- QlikView Unlocked
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- 你真的會寫代碼嗎
- JavaScript語法簡明手冊
- AI輔助編程Python實戰(zhàn):基于GitHub Copilot和ChatGPT
- C#程序開發(fā)參考手冊
- Python數(shù)據(jù)科學實戰(zhàn)