PHP再學習4—— slim框架學習和使用
0.前言
slim是一個簡單而又強大的PHP5框架,可以用來建立RESTful的web應用。可以藉助slim框架設計一個簡化版的yeelink平臺。RESTFul架構對物聯網非常重要,通過Slim的學習也加深對RESTFul框架和相關技術的理解。【PHP學習筆記——索引博文】
1.安裝wampserver
WampServer是一款由法國人開發的Apache Web伺服器、PHP直譯器以及MySQL資料庫的整合軟體包。免去了開發人員將時間花費在繁瑣的配置環境過程,從而騰出更多精力去做開發。在windows下將Apache+PHP+Mysql 整合環境,擁有簡單的圖形和選單安裝和配置環境。PHP擴充套件、Apache模組,開啟/關閉滑鼠點點就搞定,再也不用親自去修改配置檔案了,WAMP它會去做。再也不用到處詢問php的安裝問題了,wampserver一切都搞定了。這個軟體是完全免費的,可以在其圖1 wamp安裝成功
2.apache配置
slim採用了前端控制器模式,利用.htaccess檔案中的重寫規則,把HTTP請求轉給了 index.php。所以還需要啟用 mod_rewrite,並修改httpd.conf檔案中相應Directory指令的AllowOverride None為AllowOverride All。【來自CSDN部落格中的描述】http.conf位於wampserver安裝目錄\bin\apache\Apache2.4.4\conf【1】啟動mod_rewrite——去掉#,#代表註釋LoadModule rewrite_module modules/mod_rewrite.so【2】修改AllowOverride None為AllowOverride All## Deny access to the entirety of your server's filesystem. You must# explicitly permit access to web content directories in other # <Directory> blocks below.#<Directory /> AllowOverride All Require all granted</Directory>【3】訪問伺服器合法IP——任何IP均可以訪問伺服器。 註釋Deny from all,插入Allow from all任何DocumentRoot "D:/wamp/www"<Directory "D:/wamp/www"> Options Indexes FollowSymLinks AllowOverride All Order Deny,Allow# Deny from all Allow from all</Directory>【4】重啟apache服務3.slim安裝和使用初步
最簡單粗暴和直接的方法——到github下載zip檔案,slim github【連結】。解壓之後把【1】Slim資料夾,【2】.htaccess檔案和【3】index.php檔案複製到www目錄中。若看到以下網頁說明slim安裝成功。圖2 slim安裝成功
4.簡單的修改和測試
Slim提供完善的REST框架,支援GET、POST、PUT和Delete等方法,可以把index.php修改的更簡單一些。可從以下程式碼中可以熟悉Slim的基本框架和使用方法。<?php /** * Step 1: Require the Slim Framework * * If you are not using Composer, you need to require the * Slim Framework and register its PSR-0 autoloader. * * If you are using Composer, you can skip this step. */ require 'Slim/Slim.php'; \Slim\Slim::registerAutoloader(); /** * Step 2: Instantiate a Slim application * * This example instantiates a Slim application using * its default settings. However, you will usually configure * your Slim application now by passing an associative array * of setting names and values into the application constructor. */ $app = new \Slim\Slim(); /** * Step 3: Define the Slim application routes * * Here we define several Slim application routes that respond * to appropriate HTTP request methods. In this example, the second * argument for `Slim::get`, `Slim::post`, `Slim::put`, `Slim::patch`, and `Slim::delete` * is an anonymous function. */ // GET route $app->get( '/', function () { echo 'Hello Slim'; } ); // POST route $app->post( '/post', function () { echo 'This is a POST route'; } ); // PUT route $app->put( '/put', function () { echo 'This is a PUT route'; } ); // PATCH route $app->patch('/patch', function () { echo 'This is a PATCH route'; }); // DELETE route $app->delete( '/delete', function () { echo 'This is a DELETE route'; } ); /** * Step 4: Run the Slim application * * This method should be called last. This executes the Slim application * and returns the HTTP response to the HTTP client. */ $app->run(); 此時再開啟瀏覽器輸入localhost將只能看到以下內容,其實瀏覽器使用get方法,在slim的Get路由中輸出了Hello Slim。 $app->post( '/post', function () { echo 'This is a POST route'; } );
在slim中, '/post'為相對路徑,該路徑可支援變數。 function ()為後續的處理函式。其他HTTP方法也類似。
圖3 Slim Get路由 其他型別的測試方法可藉助cURL工具 【1】測試post curl --request POST http://localhost/post 【2】測試put方法 curl --request PUT http://localhost/put 【3】測試delete curl --request DELETE http://localhost/delete 【火狐瀏覽器】 如果你不喜歡使用curl工具,也可以選擇火狐瀏覽器中的HTTPRequest工具,那麼命令操作就成了愉快的GUI操作了。
圖4 火狐瀏覽器中 HTTPRequest工具測試Slim
5.後記
接著藉助樹莓派做一個類似於yeelink平臺的伺服器,可以接收來自樹莓派的HTTP請求,通過請求和響應實現LED燈的遠端控制。 URI設計 \leds\{led} JSON資料包設計 {“status”:"on"} 或 {“status”:"off"}相關推薦
PHP再學習4—— slim框架學習和使用
0.前言 slim是一個簡單而又強大的PHP5框架,可以用來建立RESTful的web應用。可以藉助slim框架設計一個簡化版的yeelink平臺。RESTFul架構對物聯網非常重要,通過Slim的學習也加深對RESTFul框架和相關技術的理解。【PHP學習筆記——索引
三十六、python學習之Flask框架: 藍圖和單元測試
一、藍圖和單元測試: 1.藍圖: 隨著flask程式越來越複雜,我們需要對程式進行模組化的處理,之前學習過python的模組化管理,於是針對一個簡單的flask程式進行模組化處理 名詞解釋: 高內聚,低耦合: 所謂高內聚是指一個軟體模組是由相關性很強的程式碼組成,
Linux多執行緒學習(4) --讀寫鎖和其他型別的鎖以及執行緒安全
多執行緒學習總結(1):https://blog.csdn.net/hansionz/article/details/84665815 多執行緒學習總結(2):https://blog.csdn.net/hansionz/article/details/84675536 多執行緒學習總結
Slim 框架學習,第二天
緊接著第一天的內容 今天主要說下,App類中的map 方法 中的 route=this->container->get(‘router’)->map(methods,pattern, $callable); 該方法。
Hibernate學習4 二級快取強化和事務管理 註解方式實現
如何證明二級快取和一級快取的物件是不一樣的? //第一次查詢 Country country = session.get(Country.class, 2);
Slim 框架學習,第十二天 _Router(三)
導讀:昨天我們學習了一下路由的介面 RouterInterface,今天我們看下,路由類的實現 先看下面兩段程式碼: Slim/DefaultServicesProvider.php $container['router'] = functi
IOS學習8——常用框架學習匯總
masonry layout 最新 快速 href code 過程 介紹 使用 我們在學習和code過程中經常會用到一些框架,本文將會持續更新最新學習和用到的框架 1、布局框架: Masonry介紹與使用實踐:快速上手Autolayout 2、IOS學習8——常用框架學習匯
JAVA學習之——SSH框架學習路線,思維腦圖。
對於即將畢業的我,其實有著各種各樣的焦慮,焦慮到經常失眠,就會去想,畢業之後我該做什麼,是從事軟體行業還是專升本;暑假的時候我在成都待了一個月,瞭解了一些公司,在Java程式設計師招聘這塊,幾乎是不招女生,也可以說是選擇這個專業的女生也特別的少,原因大家都是一
微信小程序後端學習,Express框架學習
img com spa 技術 color pan 一個 web開發框架 .org Express是一個自身功能極簡,完全是由路由和中間件構成的一個web開發框架;從本質上來說,一個Express引用就是在調用各種中間件。 e.g Express是基於Nodejs的
SSH框架學習之Spring ---- 4、Spring的事務管理和jdbcTemplate
本節講的是spring對dao層的封裝,之前可能有更好的做法,但是要知道spring也提供了這種技術。 本節的主要內容是: 1、spring的jdbcTemplate操作(實現事務crud操作) 2、spring配置連線池 (1)配置c3p0連線池 (2)service和dao注
TensorFlow學習筆記(11)--【Ubuntu】slim框架下的inception_v4模型的執行、視覺化、匯出和使用
模型:slim框架下的Inception_v4模型 Inception_v4的Checkpoint:http://download.tensorflow.org/models/inception_v4_2016_09_09.tar.gz 資料集:google的f
php laravel框架學習筆記 (二) 數據庫操作
true 數據 mar sql show top 一行 ati del 原博客鏈接:http://www.cnblogs.com/bitch1319453/p/6810492.html mysql基本配置 你可用通過配置環境變量,使用cmd進入mysql,當然還有一種東
JavaSE中Collection集合框架學習筆記(2)——拒絕重復內容的Set和支持隊列操作的Queue
%d eof 是否 face 出錯 can 3.2 lean als 前言:俗話說“金三銀四銅五”,不知道我要在這段時間找工作會不會很艱難。不管了,工作三年之後就當給自己放個暑假。 面試當中Collection(集合)是基礎重點.我在網上看了
php學習日記2(關於php中的符號->、=>和::的意思)
常用 如果 count left 部分 之間 大於等於 ech repl ‘- >’符號是“插入式解引用操作符”(infix dereference operator)。換句話說,它是調用由引用傳遞參數的子程序的方法(當然,還有其它的作用)。正如我們上面所提到的,在調
spring boot框架學習學前掌握之重要註解(4)-通過註解方式讀取外部資源配置文件2
spring boot kaigejava 凱哥java本節主要內容:1:思考問題:怎麽讀取多個配置文件,如果文件不存在怎麽辦2:配置數據庫連接池聲明:本文是《凱哥陪你學系列-框架學習之spring boot框架學習》中spring boot框架學習學前掌握之重要註解(4)-通過註解方式讀取外部資源配置文件2
spring boot框架學習4-spring boot核心(3)
spring boot kaigejava 凱哥java本節主要:1:spring boot 為我們提供的 starter pom 都有哪些2:怎麽添加xml配置文件3:日誌相關本文是《凱哥陪你學系列-框架學習之spring boot框架學習》中第四篇 spring boot框架學習4-spring boot
spring boot框架學習8-【幹貨】spring boot的web開發(4)-自定義攔截器處理權限
凱哥spring boot spring boot框架 本章節主要內容:通過前面的學習,我們了解並快速完成了spring boot第一個應用。spring boot企業級框架,那麽spring boot怎麽讀取靜態資源?如js文件夾,css文件以及png/jpg圖片呢?怎麽自定義消息轉換器呢?怎麽自定
Lucene.net(4.8.0) 學習問題記錄五: JIEba分詞和Lucene的結合,以及對分詞器的思考
+= d+ ext eth reac chart rdl ret start 前言:目前自己在做使用Lucene.net和PanGu分詞實現全文檢索的工作,不過自己是把別人做好的項目進行遷移。因為項目整體要遷移到ASP.NET Core 2.0版本,而Lucene使用的版本
hibernate框架學習筆記4:主鍵生成策略、對象狀態
alt rri gen 線程安全 理論 微軟 unit conf lose 創建一個實體類: package domain; public class Customer { private Long cust_id; private Stri
php學習筆記-定義數組和引用數組元素
組元 src php學習筆記 clas ima post 函數 .com 定義 上圖包含兩種定義數組的方法,一種是通過數組索引來創建的,一種是通過array()函數來創建的。 php學習筆記-定義數組和引用數組元素