1.1 Examples模块,Symfony,控制器

Drupal 8 龧龦龤龠龝龙龘龕龒龐龍
Drupal 8 龉龆龄龂齿龆齼齸齵齸齲齱齰齭齿齪齨齥齤齱齣齿齟齞齜齞齘齔齪齓齒齎齊齇龆齼齸齃鼿齿鼻鼸鼶鼵

本课学习内容

  • 鼱鼮 Examples 鼢鼞鼝鼚齪Symfony PHP 齃鼿齪鼅鼄鼀黿黾黽鼵
  • 黹黶 examples/page_example 龧龦鼵
  • 黭黪黦黤龝 page_example 龧龦黢黶 *.info.yml 黛黚齪*.routing.yml齪Controller.php 黿 *.links.menu.yml 黛黚鼵

Drupal 8 和 Examples 模块

黒黭黑 Drupal 8 齿黎黍龧龦龤龠黋鼶黉黅黁麾齞麻 Examples 鼝鼚齪麺齭齟齞齊麸齿 page_example 龧龦鼵
麴齓麳麯 8.x 麬麪齪麨麤麠齞鼵

什么是 Symfony ?

Symfony 齲麟麝 PHP 齃鼿齪麜麙齊麗麕 WEB 龤龠龉麑齪麎麊麇麃龤龠 PHP 麀齞鼵
Drupal 鹼麊 Symfony 齿齼鹺黹黶黾黽黿鼅鼄鼀齪鹶鹴鹱鹰齼鹺鹮龒齲鹪鹦龝 Drupal 龤龠齪
鹥齲鹢鹞齜齞齘齔龉龆齿鼵

齼鹜 Drupal 7 齿鹖鹕鹑鹎鹕 Drupal 8 龉龆鹊鹆鹃鸿鸻鼿黹齪齤鸹鸶鸵鸱鼵
Drupal 8 齿鸶鸵鸱鸭鸬齪鸨鸥鸢鸠麙鸝 Symfony 齃鼿鸜龝齊鸙鸕齿麟鸨鸥鼵
Symfony 齱 鸓鸒麝鸑鸏齿鸎 齪鹱鹰鸎鸌齨麀齞麙鸋龙 PHP 鼝鼚鼵

注意:

Drupal 8 并未使用 MVC 架构模式,它只实现了控制器编程模型。

为什么使用 Symfony ?

Symfony 鸈鸇齿麟麝麗齱齞齿鸅鸹齲黋鸄鸁鸀鷾鷻龄鷹鷵麯齼鹺鼵
龆黒 Drupal 龤龠鷱鷯鷮鷫黢黶麟麝鷧鷥齿 include 黛黚齪鷝麟麝 use 鷚齥鸌鷙鷕鸌鷔齞齼鹺鼵


Drupal 齲麟麝 PHP 麀齞齪Symfony 齲齱鸌齞鸎齿 PHP 齃鼿齪黒 Drupal 鸙鸕鷐鷍齞 Symfony 鷋齱鸠鷉鷇齱鷆鷂鼵
齃鼿齿鷀齵鸌黋麾鸭鷵齱鶿鶾黢鶺鷱齿鶶鶲齪鶰齊齲鶮鹰 PHP 龤龠鷱齪鶪黁鸌齨鶨鶧鶦齿鹖鶣麻 Drupal 齪龝龕鶡鶠鼱鼮鶝齟齞鹱麝鼝鼚鼵鶚鸿麙 Drupal 鶗鶖鷐鶓齜 Drupal 鹥鸿龆齼齸齿 PHP 鶒鶐鶎鶌齿鹱鹰鶉鸌黋麾鶆鶅鹦槛鼵


鶀鵽鵺鵶麳齪齜鹖黢黶齱齞齿鼱鼮鸅鸹黿鵴龕鸥鵲鵮鵪鵩鵥麾麨鵣鹱鹰鷆鷂齪龝鵟鵛鶗鶖鷐齿 Drupal 龤龠鷱鵘鵗鹦槛鼵

什么是控制器?

鸿麙鼮鵕鹊鵟鵛 Drupal 7 鶮黍鹖鹕鹑龤龠鵑鵏鹴鸨鸥鷐鶧鷍齞鹊 OOP 鵋鵈鵇齿鶉鵄鵂齪鼅鼄鼀鹱麝鵀鴾鸌黋鴼齱鴺鴸鸱鼵

麟麝鼅鼄鼀鴵齲麟麝 PHP 鴴鶶齪齞麙鷉鶀 HTTP 鴰鴭鵑HTTP request鵇齪黹鶺鹮鴨鴦麟麝 HTTP 鴢麀 鵑HTTP response齪鴡龘 Symfony Responseobject鵇鼵鴢麀鸌齨齲麟麝 HTML 鴒鹆齪麟麝 XML 黛鴌齪 麟麝鴈鴅齸齿 JSON 鶶鳽齪麟麝鳼鳺齪麟麝鷔鳹鹃齪麟麝 404 鳳鳱鳮鷱鸋龙鳬黋鵽麻齿鳫鳪鼵 鼅鼄鼀鸌齨鷙鷕鳩龆鴒鹆鷐鶧齿鸋龙鳧鳤鼵

鼅鼄鼀鳠鳝麙 Drupal 7 麸hook_menu() 鷐齿鴒鹆鴦鳒鴴鶶鼵鳬黢黶麟麝鼅鼄鼀鳑齪鳹鳎麟麝鵋鵈鳌鳈鴒鹆鶶鸀鼵龐黤齿齪黒 Drupal 7 麸鳬麾黢黶麟麝鳇 hook_menu() 麸齿 "page callback" 鸈齞齿鴴鶶齪鳌鳈鹱麝鴒鹆鶶鸀鼵

什么是路由,路由器?

Symfony 黾黽鼀鳀鲾鳬鳹鳎黢鶺鸱鲺 URL齪鲶鲴麻麀齞齿龒龐鶖鲱鼵麟麝黾黽齲鲯麟麝 URL 黾鲭麻麟麝鼅鼄鼀齿鲶鲴鼵

怎样创建第一个 Drupal 8 模块?

鸜龝鲫鲪齪黅黁麜麙 Examples 黢黶麟麝鲦鲥龧龦齪龆黒鲣鲠鶶龧龦鲜黹麜麙 YAML
YAML 齲麟麝鶉鳑鲕鲓齿鶶鸀鴈鴅齸齘齔齪鸌齨黽鸋龙鹎鹕鲒鲏龉龆鼵

  1. 黢黶鼚鲌
  2. 黢黶 page_example.info.yml 黛黚
  3. 黢黶 page_example.routing.yml 黛黚
  4. 黢黶 PageExampleController.php 黛黚
  5. 黢黶 page_example.links.menu.yml 黛黚
  6. 鷔黹鲈鲄
  7. 鲃鱿

设置目录

鱾鱽黅黁齰鱻黢黶黛黚黿鼚鲌鲜黹齪鷍 Drupal 8 鱷鱴麻鹱麝龧龦鼵
Drupal 7 麗鱰鷮齭齱 .info 黿 .module 黛黚鼵Drupal 8 鷮齭齿齤鱰齪鷝鷮齭齱 YAML 麬麪齿 .info 黛黚齪鱬鱪 .info.yml 齪齇鱨鹆鷙鷕 Drupal 8 黋鸄鱴鱥齿鶶鸀鲜黹鼵


麟麝麺齭齿齵齸齲龄鳹鳎黿鼢鱤龧龦鳇鱣黒鹊 Drupal 鸁麳鵑 modules/[directory] 鵇鼵
鱝齱鸙鸕齼鹺鳇鱛麻鹊麟麝鲥鸑 core/ 齿鼚鲌鱨鼵
黒龧龦鵑 modules/ 鵇鼚鲌齪鱙齲鱕 Drupal 7 鶮黤鳇鱔鱑鸝龄鳹鳎黿鼢鱤龧龦鸥龤鱣鷻鼵

黒 Drupal 8 齿 黛鴌鸁鼚鲌 齪鷧鶅齨麳鸓鱎鱋

  1. 鱉鱅麻 /modules 鼚鲌
  2. 黢黶鼚鲌 examples
  3. 鱄鸇鹱麝鱃鼚鲌
    
    
    cd examples
    
    
  4. 黢黶鼚鲌 page_example 齪鹱麝鱀鸿麀 Examples 鼝鼚齪龧龦鰿鱬 page_example。
  5. 鱄鸇鱃鼚鲌
    
    
    cd page_examples
    
    

麪鰽黅黁龒麾鰺鰶龉鰲齿 Examples 龧龦齪鹥齲鷍齞齇齿齼鹺鳺鰯黢黶麟麝鲦鲥齿鰬Hello world鰪龧龦齪鼚齿黒麙鹃鲣鰩麟鱎鱎鲺鰥鳈黹黶龧龦齿鹖鹕鼵

创建 info.yml 文件

龆黒鳬鰢鶿黒鰠麴齿鼚鲌鷾鷻齪齲黉鰞黢黶 .info 黛黚鹊鼵

  1. 黢黶 page_example.info.yml
  2. 黛黚鷐鸭鷵齼鹺齪鰛鰚麊鷐鶧鶖

type 齲鷮齭齿鱃鰖鸱齪鸌齨鰓鷻龝 module 鳮 theme 鵑麺鰏鷇鷮齭 *.info.yml 黛黚鵇鼵
龘鰌鳬鸿 Drupal 7 鰉鰈齪鳬麀鰆鰂鰀齊鶪鰖鸱齿鷕鳎鼵

鳬鸌齨鯼鯺 Drupal 8 documentation page 鹊麨齤鲠鸌齨黒 .info.yml 鷍齞齿 key|value 齪齨鯲鯮鯪齿齵齤鯧鲌鼵

龆黒鯦 Drupal 鯤鲪齿 Extend 鴒鹆齪鯠鸵鰬 Page example 鰪龧龦鼵
黒鯠鸵龧龦鵟鵛龒鷮齭黢黶 .module 黛黚齪黅黁鯟鯝麗鯜齿 *.module 黛黚鯛鸌黋齿鯚齪鯗黋鸱齼鹺麀鰆鯛鸌黋齿鱣鷻黒 service鶝鼅鼄鼀黿鯔黚鳠鹆鹃鸿鸻鲜黹鷐鼵

name: 'Page example'
type: module
description: 'An example module showing how to define a page to be displayed at a given URL.'
package: 'Example modules'
core: 8.x

创建 routing.yml

龆黒黅黁鱀龝鱃龧龦黢黶鯓鲥鼵

评论 (写第一个评论)