• 项目日志一


    最近着手自己做一个关于自己的项目,发现一个真理就是好记性不如烂笔头,做东西的时候百度之一番,但是回过头由于没有很好的记录,所以就会遗忘。

    梦想很大,想做很多的东西,凡是都要慢慢开始,前面环境安装都已完毕,现在开始代码方面,正如那句话,敲多了,也就熟了。

    安装laravel

    要求:

    • PHP版本 >= 5.5.9
    • PHP扩展:OpenSSL
    • PHP扩展:PDO
    • PHP扩展:Mbstring
    • PHP扩展:Tokenizer   

    利用composer安装

    composer global require "laravel/installer" //laravel 安装器
    
    composer create-project laravel/laravel --prefer-dist blog //blog为项目地址

    cd blog/

    复制 .env.example 到 .env 执行命令生成key

    php artisan list //查看所有的artisan 命令
    php artisan key:generate //生成key

    配置模块   

    Api  --------------------- api调用 

    Frontend ------------------ 前台模块

    Backend -------------------后台模块

    在AppProvidersRouteServiceProvider中 分发路由请求

    <?php
    
    namespace AppProviders;
    
    use IlluminateRoutingRouter;
    use IlluminateFoundationSupportProvidersRouteServiceProvider as ServiceProvider;
    
    class RouteServiceProvider extends ServiceProvider
    {
        /**
         * This namespace is applied to your controller routes.
         *
         * In addition, it is set as the URL generator's root namespace.
         *
         * @var string
         */
        protected $namespace = 'AppHttpControllers';
        protected $backendNamespace;//后台命名空间
        protected $frontendNamespace;//前台命名空间
        protected $apiNamespace;//api命名空间
        protected $currentDomain;//当前的站点
    
        /**
         * Define your route model bindings, pattern filters, etc.
         *
         * @param  IlluminateRoutingRouter  $router
         * @return void
         */
        public function boot(Router $router)
        {
            //
            $this->backendNamespace = 'AppHttpControllersBackend';
            $this->frontendNamespace = 'AppHttpControllersFrontend';
            $this->apiNamespace = 'AppHttpControllersAPI';
            $this->currentDomain = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "";
            parent::boot($router);
        }
    
        /**
         * Define the routes for the application.
         *
         * @param  IlluminateRoutingRouter  $router
         * @return void
         */
        public function map(Router $router)
        {
            //$this->mapWebRoutes($router);
            $this->mapRoutes( $router );
    
        }
    
        /**
         * Define the "web" routes for the application.
         *
         * These routes all receive session state, CSRF protection, etc.
         *
         * @param  IlluminateRoutingRouter  $router
         * @return void
         */
        protected function mapWebRoutes(Router $router)
        {
            $router->group([
                'namespace' => $this->namespace, 'middleware' => 'web',
            ], function ($router) {
                require app_path('Http/routes.php');
            });
        }
    
        protected function mapRoutes(Router $router)
        {
           $backendUrl = config('route.backend_url');
           $frontendUrl = config('route.frontend_url');
           $apiUrl = config('route.api_url');
           switch ($this->currentDomain) {
               case $apiUrl:
                   // API路由
                   $router->group([
                       'domain' => $apiUrl,
                       'namespace' => $this->apiNamespace],
                       function ($router) {
                           require app_path('Http/routes-api.php');
                       }
                   );
    
                   break;
               case $backendUrl:
                   // 后端路由
                   $router->group([
                       'middleware'=>'web', //加入中间件开启crsf防护!!!!!!
                       'domain' => $backendUrl,
                       'namespace' => $this->backendNamespace],
                       function ($router) {
                           require app_path('Http/routes-backend.php');
                       }
                   );
                   break;
               default:
                   // 前端路由
                   $router->group([
                       'domain' => $frontendUrl,
                       'namespace' => $this->frontendNamespace],
                       function ($router) {
                           require app_path('Http/routes-frontend.php');
                       }
                   );
                   break;
           }
        }
    
    
    
    
    }

    然后在新建各自的路由文件(如下图显示)

    路由配置文件

     

     以后就可以在各自的文件夹中写路由 

    建造全局函数 

    在app/Helpers/(目录可以自己随便来) 下新建一个文件 functions.php

    在functions.php 中加入这个方法

    然后在

    bootstrap/autoload.php 中添加

    require __DIR__.'/../app/Helpers/functions.php';
    或者在composer.json 中的 autoload 下增加

    "files": [
        "app/Helpers/functions.php"
    ]
    ...
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\": "app/"
        },
        "files": [
            "app/helpers/functions.php"
        ]
    },

    ...
    然后执行:

    composer dump-auto 
     
     
      
     
     
     
  • 相关阅读:
    ps使logo背景色透明
    ps切图的基本操作
    json
    py3中reduce
    列表去重的多种方法
    python之小数据池
    基于中间件访问频率限制 每分钟时间间隔最多访问3次
    三种实现登录验证的方式
    时间复杂度
    importlib
  • 原文地址:https://www.cnblogs.com/zhoupufelix/p/7657173.html
Copyright © 2020-2023  润新知