laravel教程

原文

1 创建laravel项目

创建laravel项目,需要使用composer工具,所以需要先安装composercomposer官网

然后使用命令行进行安装,安装命令如下:

composer create-project laravel/laravel {project-name} {laravel version} --prefer-dist {project-path}
# ex. composer create-project laravel/laravel myBlog --prefer-dist

其中,

  • {project-name}表示你创建的laravel项目名

  • {laravel version}表示laravel项目的版本号,默认是最新的版本

  • {project-path}表示项目创建的地址,默认是命令行存在的那个目录下,这个可以不用写。

2 启动laravel项目

2.1 方式1

在项目的根目录下,使用以下命令进行启动:

php artisan serve

使用这个命令需要先将php添加环境变量中:

这种方式有一个缺点,就是如果关掉了这个命令行界面,那么laravel项目也就关掉了。

2.2 方式2

将项目放到nginx或者apache服务器中,这里以nginx为例。

首先在Windows电脑上安装phpstudy工具。

点击右侧的【网站】添加一个新的网站域名,这个域名是本地的域名,可以是任意的字符串,但是需要注意,如果自己创建了多个网站服务,端口号不能重复,否则会访问不到服务。

如果你的laravel是要给前后端分离的项目,也就是说前端是通过接口访问你提供的服务,你还需要在nginx的配置文件添加一个配置,才能访问,先找到nginx的配置文件的存放地址,按照下面的方式进入到nginx的根目录。

进入nginx的vhost目录下,找到自己的vhost配置文件:

打开配置文件:

server {
        listen        81;
        server_name  www.zhgblog.com;
        root   "E:/software/phpstudy_pro/WWW/myBlog/public";
        location / {
            index index.php index.html error/index.html;
            try_files $uri $uri/ /index.php?$query_string;   ## 添加这一行即可
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            include E:/software/phpstudy_pro/WWW/myBlog/public/nginx.htaccess;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

然后重启nginx服务器就可以了。

3 编写接口文件

在写测试接口的时候,提示找不到指定的class文件:

这个问题可以解决,找到app\Providers\RouteServiceProvider.php文件,然后将其中一行的注释给取消掉就可以了。

<?php

namespace App\Providers;

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * The path to the "home" route for your application.
     *
     * This is used by Laravel authentication to redirect users after login.
     *
     * @var string
     */
    public const HOME = '/home';

    /**
     * The controller namespace for the application.
     *
     * When present, controller route declarations will automatically be prefixed with this namespace.
     *
     * @var string|null
     */
//    protected $namespace = 'App\\Http\\Controllers';   //这一行默认是被注释的,只要取消注释就可以了,如果没有这一行也可以加上
	protected $namespace = 'App\\Http\\Controllers';
    
    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
    }

    /**
     * Configure the rate limiters for the application.
     *
     * @return void
     */
    protected function configureRateLimiting()
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
        });
    }
}

4 Laravel 不同环境加载不同的.env文件

假设有4个.env文件,分别为

.env.local
.env.dev
.env.test
.env.prd

方式一

第一步:[pro_name]\bootstrap\app.php 加入代码

$envs = ['local','dev','test','prd'];
$env = get_cfg_var('env');
if(empty($env) || !in_array($env, $envs)){
    exit('no env files');
}
$env = '.env.'.$env;
$app->loadEnvironmentFrom($env);

第二步:php.ini文件中添加一行

env = local

方式二

假设不同环境域名分别为:

local-domain.com
dev-domain.com
test-domain.com
domain.com

[pro_name]\bootstrap\app.php 加入代码

if (!$app->runningInConsole()) {//HTTP形式
    if (empty($_SERVER['HTTP_HOST'])) {
        die('[error] no host');
    }
    $app_env = substr($_SERVER['HTTP_HOST'],0,strpos($_SERVER['HTTP_HOST'],'-'));
} else {//其它形式
    $app_env = $app->detectEnvironment(function () {
        return 'prd';
    });
}
if (empty($app_env)) {
    die('[error] no environment');
}
//写入环境配置
//Dotenv::setEnvironmentVariable('APP_ENV', $app_env);
$app->loadEnvironmentFrom('.env.' . $app_env);
//    ->useEnvironmentPath(base_path('env'));

Reference

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值