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

龋黊麻麷鱏龘鱐龢龟黛黯鯪鲩鼻

评论 (写第一个评论)