
批改狀態(tài):合格
老師批語(yǔ):
1.服務(wù)容器與Facade都是簡(jiǎn)化客戶端(也就最終使用者)的操作
2.服務(wù)容器:是在調(diào)用前,提前把類實(shí)列保存到一個(gè)關(guān)聯(lián)數(shù)組中,使用直接調(diào)用即可;通常通過(guò)一個(gè)類來(lái)實(shí)現(xiàn),把需要使用的通過(guò)類函數(shù)綁定到類屬性數(shù)組中,調(diào)用時(shí),通過(guò)類函數(shù)直接調(diào)用即可
3.Facade技術(shù)主要用來(lái)簡(jiǎn)化類的調(diào)用;通過(guò)把一般類的方法和函數(shù)靜態(tài)化,簡(jiǎn)化調(diào)用步驟(省去類實(shí)列化步驟);
4.Facade(門(mén)面技術(shù))用到的初始化方法:initialize(){}
5.Facade(門(mén)面技術(shù)):主要是通過(guò)門(mén)面類把所有的類中的方法套殼靜態(tài)化方便后面使用者調(diào)用;
6.控制類需要調(diào)用的類->把類實(shí)例化后綁定到服務(wù)容器中->門(mén)面技術(shù)(通過(guò)子類繼承父類的屬性,把服務(wù)容器類綁定門(mén)面類屬性中中,然后子類把所需要的方法靜態(tài)化)->控制類(就可以通過(guò)靜態(tài)方法調(diào)用相關(guān)類方法)
5.代碼案例
<?php
//容器
// use Closure;
//服務(wù)容器
class Container{
protected $container=[];
public function bind($name,Closure $class){
$this->container[$name]=$class;
}
public function make($name,$params=[]){
return call_user_func_array($this->container[$name],$params);
}
}
//門(mén)面技術(shù)
class Facade
{
static protected $container=null;
static public function initialize(Container $container){
static::$container=$container;
}
}
class UserModel extends Facade
{
static public function select($n,$m){
return static::$container->make("Model")->select($n,$m);
}
}
class UserView extends Facade
{
static public function index($data){
return static::$container->make("View")->index($data);
}
}
//控制器
class Controls{
public function __construct(Container $container){
Facade::initialize($container);
}
public function show($n,$m){
$data=UserModel::select($n,$m);
return UserView::index($data);
}
}
include "Model.php";
include "View.php";
$container=new Container();
$container->bind("Model",function(){return new Model();});
$container->bind("View",function(){return new View();});
// (new Controls())->show($container);
(new Controls($container))->show(0,15);
運(yùn)行結(jié)果:
1.composer:php語(yǔ)言的包依賴管理工具
2.composer的安裝請(qǐng)參考:https://pkg.phpcomposer.com/#how-to-install-composer
3.composer切換鏡像:
composer config repo.packagist composer https://packagist.phpcomposer.com
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
4.packagist(包依賴網(wǎng)站):https://packagist.org/
5.composer常用命令:
6.composer常見(jiàn)組成文件
7.自動(dòng)加載配置:autoload;在json配置文件中”autoload”字段中的配置方式
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)