亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 45
粉絲 0
評(píng)論 0
訪問(wèn)量 45972
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
php facade與composer的使用
咸魚(yú)老爺
原創(chuàng)
858人瀏覽過(guò)

facade

在服務(wù)容器與工作類之間添加一個(gè)中間層,門面

  1. namespace mvc;
  2. use Closure;
  3. // 加載模型和視圖
  4. require 'model.php';
  5. require 'view.php';
  6. // 服務(wù)容器
  7. class Container1{
  8. //對(duì)象容器
  9. protected $instances=[];
  10. // 添加對(duì)象
  11. public function bind($alias,Closure $process){
  12. $this->instances[$alias]=$process;
  13. }
  14. // 取出對(duì)象
  15. public function make($alias,$params=[]){
  16. return call_user_func_array($this->instances[$alias],[]);
  17. }
  18. }
  19. // 將依賴的外部對(duì)象添加到容器中
  20. $container=new Container1();
  21. $container->bind('model',function(){return new Model();});
  22. $container->bind('view',function(){return new View();});
  23. //--------------------
  24. // 在服務(wù)容器與工作類之間添加一個(gè)中間層,門面
  25. class Facade{
  26. protected static $container =null;
  27. //初始化
  28. public static function initialize(Container1 $container){
  29. static::$container=$container;
  30. }
  31. }
  32. class UsersModel extends Facade{
  33. public static function getData(){
  34. return static::$container->make('model')->getData();
  35. }
  36. }
  37. class UsersView extends Facade{
  38. public static function fetch($data){
  39. return static::$container->make('view')->fetch($data);
  40. }
  41. }
  42. //--------------------
  43. class Controller5
  44. {
  45. //構(gòu)造器主要是為了facade門面的初始化
  46. public function __construct(Container1 $container)
  47. {
  48. Facade::initialize($container);
  49. }
  50. public function index()
  51. {
  52. $data = UsersModel::getData();
  53. return UsersView::fetch($data);
  54. }
  55. }
  56. // 客戶端測(cè)試
  57. $controller = new Controller5($container);
  58. echo $controller->index();

調(diào)用代碼更加簡(jiǎn)潔,使用方便且減少出錯(cuò)

composer 是什么

  • php 包依賴管理工具
  • 包: 組件,一組相關(guān)的類,接口,trait 的結(jié)合體
  • 依賴: A -> B -> C -> D
  • composer 就是用 php 語(yǔ)言開(kāi)發(fā)的

組件放在了哪里

下載

  • 官網(wǎng)下載:https://getcomposer.org/
  • 中文網(wǎng): https://www.phpcomposer.com/

    windows 下載

  • 官網(wǎng)下載: https://getcomposer.org/composer.phar

  • 將 php.exe 所在路徑添加到全局 path 變量中
  • 將下載的 composer.phar 復(fù)制到 php.exe 所在目錄中
  • 創(chuàng)建 composer.bat:@php "%~dp0composer.phar" %*

  • php composer.phar -V

  • 簡(jiǎn)化成: composer -V
  • 將鏡像改為國(guó)內(nèi)阿里云:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

常用指令

  • composer install: 安裝 composer.josn 中的依賴
  • composer update: 更新依賴
  • composer selfupdate: 更新 composer 版本
  • composer require: 添加依賴到 composer.json 中
  • composer create-project: 安裝項(xiàng)目

自動(dòng)加載 autoload

  • 文件級(jí): “files”, 需要將加載的文件逐個(gè)導(dǎo)入
  • 目錄級(jí): “classmap”,類目錄的映射
  • 空間級(jí): “psr-4”: 命名空間映射到目錄
  • 無(wú)論是哪一種,最后都要執(zhí)行一下”composer dump”,更新 composer.json 中的 autoload 配置項(xiàng)
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
作者最新博文
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)