1. 程式人生 > >php框架symfony學習。(2)Bundle

php框架symfony學習。(2)Bundle

Symfony Bundles

bundle類似於其他軟體中的外掛,但卻更好。 關鍵區別在於:Symfony中的每一樣東西都是bundle,包括框架核心功能,以及你編寫的程式程式碼。
一個bundle可以理解成一個外掛,但比外掛好用。我們寫的內容就可以拆分成一個個的bundle( symfony會自動生成一個APPBundle,裡面包含控制器Controller 測試檔案Tests ,AppBundle.php起到標識作用,表明這是個bundle 繼承Bundle。Symfony\Component\HttpKernel\Bundle\Bundle 建立新的Bundle的時候,程式註冊的時候會例項化Bundle類。各個Bundle可以實現不同的功能。
要在你的程式中使用bundle,必須通過 AppKernel 類的 registerBundles() 方法來註冊並使用它們
比如寫一個部落格,可以建立一個BlogBundle,包含自己的控制器、檢視、類庫檔案等的功能集合...而且可以被其他Bundle呼叫! 控制器(Controller) 所有控制器繼承Symfony\Bundle\FrameworkBundle\Controller\Controller這個類 對於類裡的每個方法接收一個request請求,然後返回一個response物件。 當瀏覽器訪問伺服器會產生一個Request類的例項,而我們的一次響應就可以看做成一個Response類的例項。
用註釋定義路由 /* Route("/",name = "homepage")*/ 這句註釋指定了一個路由,當訪問/的時候,就呼叫這個動作。indexAction裡面的程式碼返回一個響應。 //用annotation來定義路由的方式。 另外也可以用yml或者xml等等。 響應類需要匯入Symfony\Component\HttpFoundation\Response 在路由中傳參/*@Route("/hello/{name}/{sex}",name = "hellopage")*/ 在url中用/斜槓分開 在引數中也必須和路由中命名一致
public function myAction($name,$sex){
 $msg = "姓名:".$name." | 性別:".$sex;
 $response = new Response($msg);
 return $response;
}
位址列訪問localhost/symfony的專案路徑/專案名/hello/小明/男 這種傳值方式很方便,但是也存在問題,所有的路由都傳遞到這。 此時可以在Route裡面加自定義傳遞引數的型別 requirements表示要遵守的定義規則 用正則來約束。 使用php app/console debug:router 可以檢視當前定義的所有路由。 對於同一個路由的不同動作,永遠只取第一個。後續不生效! 建立一個Bundle 做一個自己的Bundle , myBundle 建立方法 : php app/console generate:bundle    可選項-namespace -format 跟著提示一步一步操作 配置檔案的格式建議使用yaml  根目錄下src目錄多了一個資料夾 就是剛才我們建立的Bundle的命名 myBundle中:Controller中存放的都是控制器檔名為xxxController.php DependencyInJection中存放的是依賴項 (類庫)   Resource中存放的一些資源,配置檔案,檢視,路由資訊等
  Tests存放的測試有關的檔案
myBundle.php是一個php的類,可以理解為這個Bundle的眾多檔案的一個代表。 當然我們也可以用第三方的Bundle yaml格式的路由,字尾名.yml 
路徑為Resources/config/routing.yml  控制器 渲染檢視 訪問路由 檢視到控制器渲染的模板 yaml格式的路由建立挺簡單的,一般來說不如註釋風格的路由方便,但是給人以更加統一的感覺。 對於Bundle使用的路由型別可以在routing.yml中檢視。

相關推薦

php框架symfony學習2Bundle

Symfony Bundles bundle類似於其他軟體中的外掛,但卻更好。 關鍵區別在於:Symfony中的每一樣東西都是bundle,包括框架核心功能,以及你編寫的程式程式碼。 一個bundle可以理解成一個外掛,但比外掛好用。我們寫的內容就可以拆分成一個個的bu

後盾網-CI框架實例教程-馬振宇 - 學習筆記2

welcom index 如何 ech lin bsp 後臺模板 back href 第三節視頻:   1、配置自動加載輔助函數URL:     在application/config/autoload.php中設置:       $autoload[‘helper‘] =

深度學習筆記2--slim框架

今天我發現一個tensorlfow框架--slim 它包裝了一些基本的tensorflow的操作: 比如說卷積: layers=sli.conv2d(self.X,num_outputs=32,k

基於Matconvnet深度學習框架的方言分類2

續寫 在前篇文章中,我簡單的介紹了應當如何使用 CNN 來識別和分類語音,並簡單的介紹了 matconvnet 的使用以及example的執行。在下面我會說明如何使用該框架訓練和測試自己的資料。 預處理資料 在上文中,我已經介紹過先將語音樣本生成二維聲譜圖,這樣可以完美的使用 C

Quartz學習總結2——定時任務框架Quartz詳解

實現每隔1秒列印一個Hello World1.建立Maven專案,新增依賴:<dependency>      <groupId>org.quartz-scheduler</groupId>      <artifactId>quartz</artifac

Torch7框架及XNOR-Net學習筆記2--iTorch的安裝

使用itorch.image()提示需要安裝itorch,我的安裝步驟如下 1. $pip install ipython 2. $pip install notebook 3. $pip install jupyter 4. $sudo apt-get install p

Spring框架學習筆記2——面向切面程式設計AOP

介紹 概念 面向切面程式設計AOP與面向物件程式設計OOP有所不同,AOP不是對OOP的替換,而是對OOP的一種補充,AOP增強了OOP。 假設我們有幾個業務程式碼,都呼叫了某個方法,按照OOP的思想,我們就會將此方法封裝在一個類中,之後通過物件.方法名呼叫 我們可以看作我們的業務程式碼被其他程式碼入侵或者是

學習筆記2---Matlab 圖像處理相關函數命令大全

緩沖 操作 .... 命令 tor ace trac cati msh Matlab 圖像處理相關函數命令大全 一、通用函數: colorbar 顯示彩色條 語法:colorbar \ colorbar(‘vert‘) \ colorbar(‘horiz‘) \ co

5.27:cocos2d-x初探學習筆記2--重要概念及Test樣例結構(轉)

這樣的 發生 菜單 add css 基礎 dsm 人的 添加 1.幾個重要概念 在cocos2d引擎中,有幾個概念,各自是導演。場景,布景和人物角色。 導演(CCDirector):在cocos2d-x引擎中,導演類是遊戲的組織者和領導者。導演制定規則讓遊戲內的場

WPF學習筆記2——動畫效果按鈕變長

anim aud tor col log 筆記 wpf style 分享 說明(2017-6-12 11:26:48): 1. 視頻教程裏是把一個按鈕點擊一下,慢慢變長: 註意幾個方面: (1)RoutedEvent="Button.Click",這裏面要用Button,是

bootstrap 學習筆記2---- 排版

-i 排列 分段函數 class 總結 capital src 設置 per 安裝和柵格系統學完,這篇寫的是排版手冊中排版的目錄如下圖 《標題,頁面主題,內聯文本元素,對齊,改變大小寫,縮略語,地址,引用,列表》手冊中介紹那麽多,其實並不是所有的都要去看看。很多都是沒有必

養成良好的學習習慣-淺談學習方法2

成功最有效的方法是想有經驗的人學習成功最有效的方法是想有經驗的人學習!借鑒成功的人的態度和習慣。你可以讓你在任何想達到的目標表提高成功率!1、學習不專心。上課期間少幹別的。上課保持最大化的輸入,討論自己把知識最大化的輸出。課下把知識最大化會化的輸出。2、分組學習,找1-2個同伴,共同學習。今天上午學一個點,共

php擴展開發筆記2多個源代碼文件的配置和編譯

nes repr 過程 http fadein ews add ng- star 我們在開發過程中,為了代碼得可讀性和易維護性,肯定是須要多個代碼文件的,而不不過通過 ext_skel 生成得骨架文件。這篇文章主要介紹下。多個代碼文件的時候。我們須要註意

Nhibernate學習教程2-- 第一個NHibernate程序

collect 單元測試框架 文件映射 deb color rtu etc erb session管理 NHibernate之旅(2):第一個NHibernate程序 本節內容 開始使用NHibernate 1.獲取NHibernate 2.建立數據庫表 3.創建C#類庫

jQuery源碼學習筆記2

dom src asc turn rdo dom節點 defer ++ des 我們會認識到jQuery中一個叫做domManip的函數,這個函數的作用主要是處理DOM相關的操作,讓傳入的參數更加“幹凈”。 為什麽需要用這個domManip函數呢? 我們知道節點操作瀏覽

linux學習筆記2

linux配置IP進入操作系統界面後,輸入root用戶密碼。<[email protected] ~># root為用戶localhost為主機名(可修改)root用戶後跟的是# 其他用戶為$===============================================

Halcon學習筆記2 VS2010 + Halcon12 C#鏈接相機

operator debug ets generic code locate != 目錄 empty 1.打開Halcon, 使用圖像采集助手獲取相機實時圖像:      1.1 獲取實時圖像:          1.2 插入采集實時圖像的Halcon代碼,並導出:    

Byte of Python學習筆記2——回文練習

span forbidden you 一點 學習筆記 成員 reverse 大小寫 lis   Byte of Python 第111頁有關回文的作業練習,原題為:要想檢查文本是否屬於回文需要忽略其中的標點、空格與大小寫。例如,“Rise to vote, sir.”是一段

Spring學習總結2- AOP

服務 win align schema 可重用性 ext 4.0 art 屬性表 一,什麽是AOP AOP(Aspect Oriented Programming)意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續,

python學習——練習題2

tle 浮點數 參考 port space 100萬 直接 方法 但是 """ 題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%; 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成