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

龀黐黁麿鰬龖鰮龠龜黥黸鮿鲑鼹

评论 (写第一个评论)