• laravel 门面的介绍和使用


    #上文讲述了laravel中怎么用容器依赖注入类的示例。其实在服务提供者上面在封装一层静态调用,这就是门面。静态调用门面,返回了容器中注册的别名和实例。

    #下面是测试的示例

    #先创建要操作的类

    <?php
    /**
     * Created by PhpStorm.
     * User: xujun
     * Date: 2018/3/10
     * Time: 15:38
     */
    
    namespace AppHttpLogic;
    
    
    class DirLogic
    {
        public function createDir(){
            echo '创建目录';
        }
    }
    

    #然后创建服务提供者

    php artisan make:provider MDirProvider
    

    #然后在服务提供者中静态绑定到容器

    public function register()
        {
            //
            $this->app->singleton(DirLogic::class, function ($app) {
                return new DirLogic();
            });
        }
    

    #然后创建门面在app/下创建目录Facades

    <?php
    /**
     * Created by PhpStorm.
     * User: xujun
     * Date: 2018/3/10
     * Time: 15:40
     */
    
    namespace AppFacades;
    
    use AppHttpLogicDirLogic;
    use IlluminateSupportFacadesFacade;
    class DirFacades extends Facade
    {
        protected static function getFacadeAccessor()
        {
            return DirLogic::class;//容器中的真实映射名
        }
    
    }
    

    #然后修改配置文件

    在服务提供者中添加
    AppProvidersMDirProvider::class,
    在aliases数组中添加
    'DirFacade'=>AppFacadesDirFacades::class,
    

    #测试的控制器

    namespace AppHttpControllers;
    use IlluminateHttpRequest;
    use DirFacade;
    
    class UsersController extends Controller
    {
        public function index1(Request $requser){
            DirFacade::createDir();
        }
    }
    

      

    #返回

    创建目录

    总结:门面其实是在提供一个静态类调用容器中的绑定对象作用。  

      

      

      

      

  • 相关阅读:
    233. Number of Digit One
    232. Implement Queue using Stacks
    231. Power of Two
    230. Kth Smallest Element in a BST
    229. Majority Element II
    228. Summary Ranges
    227. Basic Calculator II
    ArcGIS 网络分析[3] 发布NAServer到ArcGIS for Server(以Server 10.4为例)
    iView的使用【小白向】
    Vuejs环境安装与工程建立【小白Windows向】
  • 原文地址:https://www.cnblogs.com/gavinjunftd/p/8540393.html
Copyright © 2020-2023  润新知