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();
        }
    }
    

      

    #返回

    创建目录

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

      

      

      

      

  • 相关阅读:
    Vue less使用scope时渗入修改子组件样式
    Spring容器初始话原理图
    Java的动态代理
    Spring_xml和注解混合方式开发
    Spring_xml方式开发
    Spring入门初体验
    数论
    虚拟IP和IP漂移
    字符串hash + 二分答案
    字符串hash
  • 原文地址:https://www.cnblogs.com/gavinjunftd/p/8540393.html
Copyright © 2011-2022 走看看