php包管理
1.語法:PHP 的語法看起來就像沒有經過精心設計一樣,很隨意。有的語法看似很方便(用點來連接字元串), 但是卻為之後擴展造成了很多麻煩(點沒法用於訪問對象的成員), 再比如比較蛋疼的命名空間的語法。Python 相比之下要好一點,但是 Python2 和 Python3 直接存在著一些不兼容的語法變動。
2.編寫 HTML 模版:PHP 可以非常方便地直接用來編寫 HTML 模版,Python 需要藉助其他的語言或庫來實現。
3.包管理器:PHP 的包管理器(PEAR)和擴展管理器(PECL)恐怕根本沒人用,這導致引入一個新依賴的成本很高,於是很多人傾向於自己造輪子而不是引入現成的庫。Python 有統一的包管理器,雖然也有問題,但要比 PHP 好得多,引入庫之後的命名空間管理也要比 PHP 好。
4.擴展和庫:PHP 和 Python 都可以用 C 來編寫擴展。相比之下 Python 可用的庫要更多一點。
5.運行方式:PHP 運行方式比較單一(php-fpm, mod_php), Python 則可以以 fastCGI 運行,也可以自行監聽埠來處理請求。
6.性能:因為 PHP 運行方式單一,opcode 緩存方案也比較成熟(APC, opcache),緩存 opcode 之後運行速度很快。Python 則可能需要更多地自行優化性能。
7.類型系統:PHP 和 Python 都是動態類型。PHP 對類型判別比較模糊,有很多陷阱,Python 則嚴格一些。
8.學習成本:PHP 和學習成本都不是很高。PHP 優勢在於有比較完整的官方中文文檔,而且 PHP 應用領域只有 Web, 所以需要學習的內容較少。Python 因為學習路線較多,不太容易找到適合自己的教程和資料。
9.社區:PHP 的資料遍地,但是高質量的中文社區較少,普遍對官方的新功能不是很關注。Python 則要好一點。
10.應用領域:PHP 僅在 Web 後端方面被使用,Python 應用領域更廣泛一點,如果需要將邏輯移植到其他平台(如桌面), Python 要方便一點。
㈡ 製作自己的composer包,搭建satis私有倉庫
Composer是PHP的包管理工具,用於簡化依賴管理和項目構建。在企業內部使用私有Composer包,能更高效地分發和管理代碼,減少重復勞動。以下是製作私有Composer包並搭建Satis私有倉庫的詳細步驟。
前提條件:確保安裝了Composer、Git,以及擁有公網IP的機器和域名解析服務。
製作Composer包:
1. 創建空目錄並執行Composer初始化命令。初始化命令會引導你配置Composer.json文件。
2. 填寫包名、描述信息、作者、最小穩定版本和項目類型。這里通常選擇默認類型。
3. 設置許可類型為寬松的MIT許可。
4. 選擇是否設置依賴環境或其它包。如果需要添加依賴,可以搜索並輸入包名。
5. 確認生成composer.json文件並安裝依賴。
6. 生成文件結構。此時包內無內容,需要添加測試功能代碼。
7. 在composer.json文件中添加PSR-4自動載入映射。在項目根目錄下新建src目錄,在Test.php文件中編寫測試代碼。執行composer mp-autoload命令,生成自動載入配置。
8. 在根目錄下新建index.php文件用於測試代碼。
上傳GitHub:
1. 創建GitHub倉庫並將項目代碼上傳。
2. 通過Git命令上傳至GitHub。
搭建Satis倉庫:
1. 使用Satis工具搭建私有倉庫,原理是將Git倉庫的Composer包拉取後製作靜態文件,形成簡單的UI界面,提供包的分發下載服務。
2. 選定公網機器並新建satis.json配置文件,定義倉庫結構。
3. 使用Composer/satis鏡像拉取內容打包靜態文件和UI界面。
4. 在宿主機下生成output文件夾,部署Nginx容器運行靜態UI界面。
5. 域名解析至宿主機的8881埠,通過寶塔反向代理解析,完成Satis私有倉庫搭建。
測試與部署:
1. 使用不重要的項目進行測試,修改composer.json文件添加私有源配置。
2. 更換全局Composer源拉取私有包。
3. 為私有倉庫取消HTTP安全檢查,確保能成功拉取。
參考教程:Hub.docker.com提供Satis鏡像,而zhuanlan.hu.com則有更詳細的構建和部署指南。
㈢ 怎麼使用php 包依賴管理工具 composer 執行命令安裝
CentOS7下安裝Composer安裝Composer1、將composer.phar下載到項目中使用curl-sShttps://getcomposer.org/installer|php下載Composer的二進制文件,是一個PHAR包(PHP的歸檔)2、可以通過--install-dir選項指定Composer的安裝目錄(它可以是一個絕對或相對路徑):curl-sShttps://getcomposer.org/installer|php----install-dir=lumen3、如果把composer.phar放在系統的PATH目錄中,就能在全局訪問composer.phar。在類Unix系統中,你甚至可以在使用時不加php前綴。可以執行這些命令讓composer在你的系統中進行全局調用:#mvcomposer.phar/usr/local/bin/composer現在只需要運行composer命令就可以使用Composer而不需要輸入phpcomposer.phar。4、檢查Composer是否正常工作,只需要通過php來執行PHAR:phpcomposer.phar這將返回給你一個可執行的命令列表。使用Composer要在項目中使用Composer,只需要一個composer.json文件。該文件包含了項目的依賴和其它的一些元數據。現在使用Composer來安裝項目的依賴。1、創建composer.json文件在當前目錄下創建composer.json文件,在composer.json文件中指定requirekey的吵凳值。簡單的告訴Composer你的項目需要依賴哪些包。例如:{"require":{"monolog/monolog":"1.0.*"}}可以看到,require需要一個包名稱monolog/monolog映射到包版本1.0.*的對象。包名稱由供應商名稱和其項目名稱構成。2、安裝依賴包執行install命令獲取定義的依賴到本地項目:phpcomposer.pharinstall如果你進行了全局安裝,並且沒有phar文件在當前目錄,使用下面的命令代替:composerinstall這將會找到monolog/monolog的最新版本,並將它下載到vendor目錄。這是一個慣例把第輪棚三方的代碼到一個指定的目錄vendor。如果是monolog將會創建vendor/monolog/monolog目臘碰則錄。注意:install命令將創建一個composer.lock文件到你項目的根目錄中。3、自動載入除了庫的下載,Composer還准備了一個自動載入文件,它可以載入Composer下載的庫中所有的類文件。使用它,你只需要將下面這行代碼添加到你項目的引導文件中:require'vendor/autoload.php';現在我們就可以使用monolog了