laravel
文章平均质量分 69
laravel框架
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
记一个laravel问题Script @php artisan package:discover handling the post-autoload-dump event returned with
更新了composer.json,然后安装依赖,报错。原创 2022-07-18 15:46:53 · 1228 阅读 · 1 评论 -
记一个laravel当配置被缓存后env返回为空的问题
文档:Configuration - Laravel - The PHP Framework For Web Artisans1.简介在本地运行 php artisan config:cache后,发现env函数返回值为空运行php artisan config:clear后,重新可以获取值2.解析源码:Illuminate\Foundation\Bootstrap\LoadEnvironmentVariablespublic function bootstrap(原创 2022-01-30 20:08:46 · 658 阅读 · 0 评论 -
laravel源码解析之AuthServiceProvider与Auth机制
文档:Authentication - Laravel - The PHP Framework For Web Artisans1.简介laravel中Auth功能是由Illuminate\Auth\AuthServiceProvider和App\Providers\AuthServiceProvider引入的2.AuthServiceProviderIlluminate\Auth\AuthServiceProvider是认证的主要ServiceProvider,注册了大原创 2021-12-19 18:20:59 · 633 阅读 · 0 评论 -
laravel源码解析之ServiceProvider机制
文档:Service Providers - Laravel - The PHP Framework For Web Artisans1.简介Illuminate\Support\ServiceProvider是所有 Laravel 应用程序引导的中心位置。应用程序,以及 Laravel 的所有核心服务,都是通过服务提供者引导的。2.Application::register这个方法是所有ServiceProvider的注册入口 public function原创 2021-12-18 18:26:11 · 413 阅读 · 0 评论 -
laravel源码解析之Facade
文档:Facades - Laravel - The PHP Framework For Web Artisans1.简介Facades 为应用程序的服务容器中可用的类提供“静态”接口。也就是Facade为容器中注册的对象提供静态代理2.RegisterFacadesIlluminate\Foundation\Bootstrap\RegisterFacades是初始引导器之一,作用就是初始化Facade public function bootstrap(Ap原创 2021-12-18 16:33:59 · 228 阅读 · 0 评论 -
laravel源码解析之Container容器
1.简介laravel启动的核心Application同时具有了容器的功能,和容器有关的接口和类如下:Illuminate\Container\Container:容器基类,实现了大多数容器方法,实现了ArrayAccess接口 Illuminate\Contracts\Container\Container:容器接口,由Illuminate\Contracts\Foundation\Application继承容器内有以下概念:$abstract:容器内对象的key,可能是cla..原创 2021-12-11 18:36:24 · 802 阅读 · 0 评论 -
laravel源码解析之bootstrap过程
laravel有两个主要的引导流程第一个是在创建Application对象时的引导$app = require_once __DIR__.'/../bootstrap/app.php';主要是创建了Application容器对象,并且注册了核心的几个对象第二个是在处理请求之前Illuminate\Foundation\Http\Kernel中使用引导器进行的引导 protected $bootstrappers = [ \Illumina原创 2021-11-21 10:53:40 · 321 阅读 · 0 评论 -
laravel源码解析之Application
1.简介laravel项目的运行起点始于一个Illuminate\Foundation\Application对象$app = new Illuminate\Foundation\Application( $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__));这个类实现了以下接口:Illuminate\Contracts\Foundation\Application:主要接口,定义了Application的方法 Illuminate..原创 2021-11-20 22:48:20 · 503 阅读 · 0 评论 -
laravel源码解析之请求处理流程
1.入口laravel的请求处理入口在Illuminate\Foundation\Http\Kernel::handle方法里: public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($req..原创 2021-11-19 23:52:09 · 520 阅读 · 0 评论 -
laravel源码解析之启动流程
1.入口原创 2021-11-18 23:00:32 · 1403 阅读 · 0 评论 -
laravel实战之项目初始化
1.简介如果电脑已经安装了 PHP 和 Composer,可以直接使用 Composer 创建一个新的 Laravel 项目。创建应用程序后,可以使用 Artisan CLI 的serve命令启动 Laravel 的本地开发服务器2.安装全局命令安装laravel全局命令composer global require laravel/installer测试命令laravel listLaravel Installer 4.2.9Usage: co..原创 2021-10-28 22:44:53 · 282 阅读 · 0 评论 -
记一个laravel日志文件权限问题
1.简介laravel里的日志文件所属用户是当前进程的用户比如apache2和nginx用www-data启动,则log的用户也是www-data但是有时我们使用crontab运行Command时,使用的用户是root此时产生的log所属用户是root而在laravel的RotatingFileHandler里有这样一句话* @param int|null $filePermission Optional file permissions (default (0644)..原创 2021-10-11 22:46:44 · 1505 阅读 · 0 评论 -
记一个https下Laravel分页url为http问题
1.问题laravel前端负载均衡为https,后端实例为http,发现生成分页url为http协议2.解决 if($env != 'local'){ $url->forceScheme('https'); Paginator::currentPathResolver(function () { $url = $this->app['request']->ur...原创 2020-12-18 12:31:39 · 445 阅读 · 0 评论 -
记一个Laravel项目https下访问,资源路径是http问题
1.问题项目迁移后发现使用https访问首页,样式全挂,发现所有样式js、css路径都是http后台发现样式资源文件使用URL::asset方法引入,而此方法默认生成http协议url2.解决在app/Providers/AppServiceProvider中修改boot方法:use Illuminate\Routing\UrlGenerator;public function boot(UrlGenerator $url){ $env =...原创 2020-11-30 20:16:24 · 1000 阅读 · 0 评论 -
Laravel Eloquent ORM之入门
1.简介Laravel附带的Eloquent ORM为使用您的数据库提供了一个漂亮,简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。 使用模型可以查询表中的数据,以及将新记录插入表中。在开始之前,请确保在config / database.php中配置数据库连接。 有关配置数据库的更多信息,请查阅文档。2.定义模型首先,让我们创建一个Eloquent模型。 模型通常位于app \ Models目录中,但是您可以将其随意放...翻译 2020-11-27 13:25:35 · 227 阅读 · 0 评论 -
Laravel数据库之Redis
1.简介Redis是一个开源的高级键值存储。 它通常被称为数据结构服务器,因为键可以包含字符串,哈希,列表,集合和排序集合。在将Redis与Laravel结合使用之前,我们建议您通过PECL安装和使用PhpRedis PHP扩展。 该扩展的安装更加复杂,但对于大量使用Redis的应用程序可能会产生更好的性能。另外,您可以通过Composer安装predis / predis软件包:composer require predis/predis1.1 配置您的应...翻译 2020-11-21 22:12:44 · 262 阅读 · 0 评论 -
Laravel数据库之Seeding
1.简介Laravel提供了一种使用种子类将测试数据作为数据库种子的简单方法。所有种子类都存储在database / seeders目录中。 种子类可能具有您想要的任何名称,但可能应该遵循一些明智的约定,例如UserSeeder等。默认情况下,为您定义了DatabaseSeeder类。 在此类中,您可以使用call方法运行其他种子类,从而可以控制种子顺序。2.书写Seeders要生成种子,请执行make:seeder Artisan命令。 框架生成的所有种子都将放...翻译 2020-11-21 21:38:26 · 314 阅读 · 0 评论 -
Laravel数据库之迁移
1.简介迁移就像数据库的版本控制一样,允许您的团队修改和共享应用程序的数据库架构。迁移通常与Laravel的架构生成器配对以构建应用程序的数据库架构。 如果您曾经不得不告诉队友将一列手动添加到他们的本地数据库架构中,那么您将面临数据库迁移解决的问题。Laravel Schema外观为在所有Laravel支持的数据库系统中创建和操作表提供了数据库不可知的支持。2.生成迁移要创建迁移,请使用make:migration Artisan命令:php artisan...翻译 2020-11-21 19:09:01 · 562 阅读 · 0 评论 -
Laravel数据库之分页
1.简介在其他框架中,分页可能会非常痛苦。 Laravel的分页器已与查询生成器和Eloquent ORM集成在一起,并提供了便捷,易于使用的数据库结果分页。默认情况下,分页器生成的HTML与Tailwind CSS框架兼容; 但是,Bootstrap视图也可用。2.基本使用2.1 分页查询构建器结果有几种分页项目的方法。 最简单的方法是使用查询构建器上的分页方法或Eloquent查询。分页方法会根据用户正在查看的当前页面自动设置适当的限制和偏移量。...翻译 2020-11-21 18:11:05 · 1036 阅读 · 0 评论 -
Laravel数据库之查询构建器
1.简介Laravel的数据库查询生成器为创建和运行数据库查询提供了方便,流畅的界面。 它可用于在应用程序中执行大多数数据库操作,并在所有受支持的数据库系统上工作。Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击。 无需清除作为绑定传递的字符串。PDO不支持绑定列名称。因此,您绝不能允许用户输入来指定查询所引用的列名,包括“ order by”列等。如果必须允许用户选择要查询的某些列,请始终对白列验证列名。允许的列的列表。2.获取结果...翻译 2020-11-21 16:55:58 · 289 阅读 · 0 评论 -
Laravel数据库之入门
1.简介Laravel使用原始SQL,流利的查询构建器和Eloquent ORM,使得跨各种数据库后端与数据库的交互极其简单。 目前,Laravel支持四个数据库:MySQL 5.6+ (Version Policy) PostgreSQL 9.4+ (Version Policy) SQLite 3.8.8+ SQL Server 2017+ (Version Policy)1.1 配置您的应用程序的数据库配置位于config / database.php。 在...翻译 2020-11-15 21:05:09 · 230 阅读 · 0 评论 -
Laravel安全之密码重置
1.简介大多数Web应用程序为用户提供了一种重置其忘记密码的方法。 Laravel提供了发送密码提示和执行密码重置的便捷方法,而不是强迫您在每个应用程序上重新实现此功能。1.1 模型准备在使用Laravel的密码重置功能之前,您的App \ Models \ User模型必须使用Illuminate \ Notifications \ Notifiable特征。 通常,此特征会自动包含在Laravel随附的默认App \ Models \ User模型中。接下来,验证...翻译 2020-11-15 18:30:26 · 459 阅读 · 0 评论 -
Laravel安全之哈希
1.简介Laravel Hash外观提供安全的Bcrypt和Argon2哈希存储用户密码。 如果您使用Laravel Jetstream身份验证支架,则默认情况下将使用Bcrypt进行注册和身份验证。Bcrypt是散列密码的绝佳选择,因为它的“工作因子”是可调的,这意味着随着硬件能力的提高,生成散列所花费的时间可以增加。2.配置您的应用程序的默认哈希驱动程序是在config / hashing.php配置文件中配置的。 当前支持三种驱动程序:Bcrypt和Arg...翻译 2020-11-15 18:20:54 · 381 阅读 · 0 评论 -
Laravel安全之Encryption
1.简介Laravel的加密器使用OpenSSL提供AES-256和AES-128加密。 强烈建议您使用Laravel的内置加密工具,而不要尝试使用自己的“自家”加密算法。Laravel的所有加密值都使用消息认证代码(MAC)签名,因此一旦加密,它们的基础值就无法修改。2.配置在使用Laravel的加密器之前,您必须在config / app.php配置文件中设置一个密钥选项。您应该使用php artisan key:generate命令生成此密钥,因为此Arti...翻译 2020-11-15 18:15:42 · 302 阅读 · 0 评论 -
Laravel安全之电子邮件验证
1.简介许多Web应用程序要求用户在使用该应用程序之前先验证其电子邮件地址。 Laravel提供了便捷的方法来发送和验证电子邮件验证请求,而不是强迫您在每个应用程序上重新实现此功能。1.1模型准备首先,请确认您的App \ Models \ User模型实现了Illuminate \ Contracts \ Auth \ MustVerifyEmail合同:<?phpnamespace App\Models;use Illuminate\Contra...翻译 2020-11-15 18:12:32 · 533 阅读 · 0 评论 -
Laravel安装之Authorization
1.简介除了提供开箱即用的身份验证服务外,Laravel还提供了一种简单的方法来针对给定资源授权用户操作。与身份验证一样,Laravel的授权方法也很简单,并且有两种主要的授权操作方式:Gate和策略。想想诸如路由和控制器之类的登机门和策略。 Gates提供了一种基于Closure的简单授权方法,而策略(如控制器)将其逻辑围绕特定模型或资源进行分组。我们将首先探索关口,然后研究政策。在构建应用程序时,您无需选择仅使用Gate还是仅使用策略。大多数应用程序很可能会混合使用Gate和策略...翻译 2020-11-15 18:03:11 · 470 阅读 · 0 评论 -
Laravel安全之Authentication
1.简介Laravel使实现身份验证非常简单。 实际上,几乎所有内容都为您提供了现成的配置。 身份验证配置文件位于config / auth.php中,其中包含一些文档齐全的选项,用于调整身份验证服务的行为。Laravel的身份验证工具的核心是“防护者”和“提供者”。 防护措施定义了如何针对每个请求对用户进行身份验证。 例如,Laravel附带有会话防护,该防护使用会话存储和cookie维护状态。提供程序定义如何从持久性存储中检索用户。 Laravel附带支持使用Eloquent和数...翻译 2020-11-15 12:48:00 · 566 阅读 · 0 评论 -
Laravel前端之Compiling Assets (Mix)
1.简介Laravel Mix提供了一种流畅的API,可使用几种常见的CSS和JavaScript预处理器为您的Laravel应用程序定义Webpack构建步骤。 通过简单的方法链,您可以流畅地定义资产管道。 例如:mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css');如果您对Webpack和资产编译入门感到困惑和不知所措,那么您会喜欢Laravel...翻译 2020-11-15 11:13:32 · 268 阅读 · 0 评论 -
Laravel前端之Localization
1.简介1.1 配置Locale2.定义翻译字符串2.1使用快捷键2.2使用翻译字符串作为键3.检索翻译字符串3.1替换翻译字符串中的参数3.2多元化4.覆盖软件包语言文件...翻译 2020-11-14 15:50:28 · 257 阅读 · 0 评论 -
Laravel前端之Blade模板
1.简介Blade是Laravel提供的简单但功能强大的模板引擎。 与其他流行的PHP模板引擎不同,Blade不会限制您在视图中使用纯PHP代码。实际上,所有Blade视图都被编译为纯PHP代码并被缓存直到被修改,这意味着Blade实质上为您的应用程序增加了零开销。Blade视图文件使用.blade.php文件扩展名,通常存储在resources / views目录中。2.模板继承2.1 定义一个布局使用Blade的两个主要好处是模板继承和section...翻译 2020-11-14 11:27:18 · 709 阅读 · 0 评论 -
Laravel基础之日志
1.简介为了帮助您了解有关应用程序中发生的事情的更多信息,Laravel提供了强大的日志记录服务,使您可以将消息记录到文件,系统错误日志甚至Slack中,以通知整个团队。在后台,Laravel利用了Monolog库,该库为各种强大的日志处理程序提供支持。 Laravel使配置这些处理程序变得轻而易举,允许您混合和匹配它们以自定义应用程序的日志处理。2.配置应用程序日志系统的所有配置都位于config / logging.php配置文件中。 该文件使您可以配置应用程序的...翻译 2020-11-14 09:38:14 · 563 阅读 · 0 评论 -
Laravel基础之错误处理
1.简介当您开始一个新的Laravel项目时,已经为您配置了错误和异常处理。App \ Exceptions \ Handler类是记录由应用程序触发的所有异常,然后将其呈现给用户的地方。 在本文档中,我们将更深入地研究此类。2.配置config / app.php配置文件中的debug选项决定向用户实际显示多少有关错误的信息。 默认情况下,此选项设置为尊重APP_DEBUG环境变量的值,该值存储在您的.env文件中。对于本地开发,应将APP_DEBUG环境变量设...翻译 2020-11-14 09:01:12 · 393 阅读 · 0 评论 -
Laravel基础之校验
1.简介Laravel提供了几种不同的方法来验证应用程序的传入数据。默认情况下,Laravel的基本控制器类使用ValidatesRequests特性,该特性提供了一种方便的方法来使用各种强大的验证规则来验证传入的HTTP请求。2.快速入门要了解Laravel强大的验证功能,让我们看一个验证表单并将错误消息显示给用户的完整示例。2.1 定义路由首先,假设我们在routes / web.php文件中定义了以下路由:use App\Http\Co...翻译 2020-11-10 23:56:38 · 451 阅读 · 0 评论 -
Laravel基础之HTTP Session
1.简介由于HTTP驱动的应用程序是无状态的,因此会话提供了一种在多个请求中存储有关用户信息的方法。Laravel附带了各种会话后端,这些后端可通过表达性的统一API进行访问。开箱即用地支持流行的后端,例如Memcached,Redis和数据库。1.1 配置会话配置文件存储在config / session.php中。 确保查看此文件中可用的选项。默认情况下,Laravel配置为使用文件会话驱动程序,该文件会话驱动程序适用于许多应用程序。会话驱动程序配置选...翻译 2020-11-08 12:49:00 · 190 阅读 · 0 评论 -
Laravel基础之URL生成
1.简介Laravel提供了一些帮助程序来帮助您为应用程序生成URL。当在模板和API响应中构建链接,或生成指向应用程序另一部分的重定向响应时,这些方法尤其有用。2.基础2.1 生成基础URLurl帮助程序可用于为您的应用程序生成任意URL。 生成的URL将自动使用该方案(HTTP或HTTPS)并从当前请求中托管:$post = App\Models\Post::find(1);echo url("/posts/{$post->id}");...翻译 2020-11-08 12:29:13 · 1096 阅读 · 1 评论 -
Laravel基础之视图
1.创建视图寻找有关如何编写Blade模板的更多信息? 查看完整的Blade文档开始使用。视图包含应用程序提供的HTML,并将控制器/应用程序逻辑与表示逻辑分开。 视图存储在resources / views目录中。 一个简单的视图可能看起来像这样:<!-- View stored in resources/views/greeting.blade.php --><html> <body> <h1>H...翻译 2020-11-08 10:55:05 · 297 阅读 · 0 评论 -
Laravel基础之Responses
1.创建Responses字符串与数组所有路由和控制器都应返回一个响应,并将其发送回用户的浏览器。Laravel提供了几种不同的返回响应的方式。 最基本的响应是从路由或控制器返回字符串。框架将自动将字符串转换为完整的HTTP响应:Route::get('/', function () { return 'Hello World';});除了从路由和控制器返回字符串外,您还可以返回数组。 框架将自动将数组转换为JSON响应:Route::get('/...翻译 2020-11-08 10:27:20 · 345 阅读 · 0 评论 -
Laravel基础之HTTP Requests
1.访问Request要通过依赖注入获得当前HTTP请求的实例,应在控制器方法上键入提示Illuminate \ Http \ Request类。 传入的请求实例将由服务容器自动注入:<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class UserController extends Controller{ /** * Store a new user. ...翻译 2020-11-08 00:04:27 · 799 阅读 · 0 评论 -
Laravel基础之Controllers
1.简介您可能希望使用Controller类来组织此行为,而不是将所有请求处理逻辑都定义为路由文件中的Closures。控制器可以将相关的请求处理逻辑分组为一个类。 控制器存储在app / Http / Controllers目录中。2.控制器基础2.1 定义控制器下面是基本控制器类的示例。 请注意,控制器扩展了Laravel随附的基本控制器类。基类提供了一些便利的方法,例如中间件方法,可用于将中间件附加到控制器操作:<?phpnames...翻译 2020-11-07 19:30:47 · 382 阅读 · 1 评论 -
Laravel基础之CSRF保护
1.简介Laravel使您可以轻松保护应用程序免受跨站点请求伪造(CSRF)攻击。 跨站点请求伪造是一种恶意利用,利用这种手段,代表经过身份验证的用户执行未经授权的命令。Laravel为应用程序管理的每个活动用户会话自动生成一个CSRF“令牌”。 此令牌用于验证经过身份验证的用户是实际向应用程序发出请求的用户。每当您在应用程序中定义HTML表单时,都应在表单中包含一个隐藏的CSRF令牌字段,以便CSRF保护中间件可以验证请求。 您可以使用@csrf Blade指令生成令牌字段:...翻译 2020-11-07 18:44:42 · 842 阅读 · 0 评论