zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    

      

    #返回

    创建目录

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

      

      

      

      

  • 相关阅读:
    文件上传到服务器,写入文件和读取文件
    ajax
    jquery.gritter 提示
    lambda
    C# 对象初始化器和集合初始化器
    C# HttpHelper万能框架实现 接口
    插件总结
    backbone.js之Model篇 简单总结和深入(2)
    backBone.js初识
    利用 bugly 分析应用崩溃
  • 原文地址:https://www.cnblogs.com/gavinjunftd/p/8540393.html
Copyright © 2011-2022 走看看