日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件

發布時間:2025/3/15 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用 Composer 為 ThinkPHP(3.2.3)框架添加和管理組件

環境:Windows 10 64位 PHP 版本:5.5.12 框架:ThinkPHP 3.2.3

Tips:

組件:打包的代碼,可以是一系列相關的類(class)、接口(interface)、特性(trait),用于解決某個具體的問題。組件中的類、接口、特性通常放在同一個命名空間中。

Packagist:https://packagist.org/,該網站收集 PHP 組件,可以在上面查找項目中需要的組件。ThinkPHP 在該站的地址為:https://packagist.org/packages/topthink/thinkphp

Composer:Composer 是 PHP 組件的依賴管理器,在命令行中運行,通過運行命令可以下載組件(以及組件的依賴)并且把組件(以及組件的依賴)自動加載到項目中。

?

安裝 Composer

Composer 官網地址:https://getcomposer.org/,中文鏡像地址:http://www.phpcomposer.com/

Windows 版下載地址:https://getcomposer.org/download/

下載安裝包并安裝:

如果安裝不成功且提示:

The openssl extension is missing, which will reduce the security and stability of Composer. If possible you should enable it or recompile php with --with-openssl

則需要將 php.ini 中?extension=php_openssl.dll 前面的注釋取消。

?

當安裝成功后,程序會自動關把安裝路徑添加到系統的環境變量,打開環境變量可以看到:

因此在 cmd 命令提示符下可以直接執行 composer 命令:

如果看到這個畫面則說明安裝成功了。

?

準備框架

測試使用 ThinkPHP(3.2.3) 框架(也可以使用 Laravel、Yii 等其他現代框架)。初始化的框架根目錄中,有一個 composer.json 文件:

{"name": "topthink/thinkphp","description": "the ThinkPHP Framework","type": "framework","keywords": ["framework","thinkphp","ORM"],"homepage": "http://thinkphp.cn/","license": "Apache2","authors": [{"name": "liu21st","email": "liu21st@gmail.com"}],"require": {"php": ">=5.3.0"},"minimum-stability": "dev" }

PHP 組件中必須要有 composer.json 文件。Composer 會使用該文件中的信息查找、安裝和自動加載 PHP 組件。

其中:

name 表示該組件的 廠商名(最頂層命名空間)和包名(字命名空間),格式是 "name": "vendor/package",vendor 表示最頂層命名空間,package 表示字命名空間

require 表示該組件依賴的組件

一會安裝了其他組件之后可以看看該文件的變化。

?

安裝組件

在 ThinkPHP 項目中安裝一個錯誤與異常的組件 Whoops,地址:https://packagist.org/packages/filp/whoops

項目下的?composer require filp/whoops 就是該組件在 Composer 下的安裝命令。

該組件的作用是如果 PHP 腳本中觸發了錯誤和沒有捕獲的異常,則出現 Whoops 的診斷頁面。

?

在命令提示符下進入項目目錄:

?

執行命令?composer require filp/whoops

看到以上提示說明組件安裝完成,此時查看項目目錄,發現在根目錄下會多一個 vendor 目錄:

組件 Whoops 就位于 Vendor/filp 目錄下。

?

此時再看根目錄下 composer.json 文件:

項目的依賴組件中多了 Whoops 組件,版本是 2.1

?

測試組件

在 Application/Home/Controller 下創建 TestController.class.php 文件。首先測試系統捕獲異常時的輸出:

<?php /*** Created by PhpStorm.* User: dee* Date: 2016/8/6* Time: 12:44*/ namespace Home\Controller; use Think\Controller;class TestController extends Controller {public function index() {try {$this->division(10, 0);} catch(\Exception $e) {echo $e->getMessage();}}function division($dividend, $divisor) {if($divisor == 0) {throw new \Exception('Division by zero');}} }

輸出:

?

然后測試不加載 Whoops 組件,腳本遇到未捕獲異常時的提示:

<?php /*** Created by PhpStorm.* User: dee* Date: 2016/8/6* Time: 12:44*/ namespace Home\Controller; use Think\Controller;class TestController extends Controller {public function index() {// 測試未捕獲的異常$this->division(10, 0);}function division($dividend, $divisor) {if($divisor == 0) {throw new \Exception('Division by zero');}} }

訪問:http://127.0.0.3/php/composer/thinkphp/Home/Test

輸出:

?

?

最后測試加載了 Whoops 組件,并且腳本遇到未捕獲的異常時的輸出:

<?php /*** Created by PhpStorm.* User: dee* Date: 2016/8/6* Time: 12:44*/ namespace Home\Controller; use Think\Controller;class TestController extends Controller {public function index() {// 使用composer自動加載器require $_SERVER['DOCUMENT_ROOT'].__ROOT__.'/vendor/autoload.php';// 設置Whoops提供的錯誤和異常處理$whoops = new \Whoops\Run;$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);$whoops->register();// 測試未捕獲的異常$this->division(10, 0);}function division($dividend, $divisor) {if($divisor == 0) {throw new \Exception('Division by zero');}} }

輸出:

?

測試結束。

?

安裝組件的另一種方式

在 composer.json 文件中加入組件包:

例如添加組件 monolog

?

然后使用 composer update 命令下載組件

?

此時組件已經被安裝到了項目中:

?

轉載于:https://www.cnblogs.com/o-ye/p/6005520.html

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。