
laravel
eddieHoo
我们一无所成的主要原因是想的太多,而做的太少!
展开
-
Laravel应用代码分层
应用代码分层我们在写应用里的代码时根据代码负责的不同任务讲其分为五大块Controller, Repository, Service, Model, View。Model 数据模型, 数据模型面向的是数据层,在这里我们只关心数据表的问题,在 Model 中应该只定义数据与对象映射相关的属性和方法如:表名、主键名、是否让 laravel 管理时间字段等属性,以及模型关联、查询作用域等方法。其他与数据表无关的业务逻辑都不应出现在这里。Repository 数据逻辑访问层,由它来对接 Model 层,理论原创 2020-12-07 18:14:15 · 2000 阅读 · 0 评论 -
一种领域驱动设计(DDD)方法在Laravel Framework中的实践
Laravel是一个健壮的框架,过去两年我一直使用它。直到今年初,它标准的架构对于我参与过的工程来说是足够的。然而现在来了一个新的挑战,对于新的工程我们并不知道工程规模有多大,但是我们都知道工程应该根据情况需要尽可能的进行扩展,而且它对于新的团队成员来说应该是不难接受的,而未来可能会把应用的每个模块转换成微服务。所以我开始学习软件架构模式并选择领域驱动设计(DDD)。关于DDDDDD包含了一个持续改进场景的实现,可以作为一个极其有用的工具来开发高质量的软件来满足用户的需求。这个软件模式是由Eric转载 2020-07-27 18:04:26 · 1253 阅读 · 0 评论 -
Laravel 项目加速指南
很多人都说用 Laravel 做开发很好但是性能太差,我曾经也一度这么认为,最近围绕 composer 做一些行项目 ,研究了 composer 的自动加载机制,顺便研究了下 Laravel 项目,发现,事实上 Laravel 并不慢,只不过还是我们没有用好它罢了。PHP 项目慢的几个重要原因首先想到的导致 PHP 项目慢的一个首要原因就是 IO 问题, 因为php是解释型语言,所以每次请求都要读取源代码并进行语法解析,解决这个问题要从两方面下手:一是将解析过的文件的结果都缓存起来,下次直接读取原创 2020-06-28 10:28:39 · 1483 阅读 · 0 评论 -
Laravel 开启跨域功能
人在江湖走,哪有不湿鞋?经常做api开发的的时候,总会遇到跨域的情况,特别是前后端完全分离的情况,为什么会这样呢?出于安全性的原因,浏览器会限制 Script 中的跨域请求。由于 XMLHttpRequest 遵循同源策略,所有使用 XMLHttpRequest 构造 HTTP 请求的应用只能访问自己的域名,如果需要构造跨域的请求,那么开发者需要配合浏览器做出一些允许跨域的配置。解...原创 2019-10-28 11:52:12 · 2104 阅读 · 0 评论 -
Laravel中利用Scout集成Elasticsearch搜索引擎
写在前面Elasticsearch(以下简称es)是一个实时的分布式搜索和分析引擎。在搜索引擎方面,不仅仅有Elasticsearch,像另一篇提到的Algolia,还有sphinx、Solr等等,这里不做评价和比较,本篇主要介绍laravel中如何使用Elasticsearch。首选必须安装有Elasticsearch,请参考https://www.tech1024.cn/orig...原创 2019-10-28 11:49:35 · 1139 阅读 · 0 评论 -
Laravel从现有数据库逆向生成数据库迁移文件,包括索引和外键!
熟悉laravel的同学都知道,laravel的数据迁移和数据填充,能够随着源代码的改变而同步记录同步数据库结构的变化,也就是对数据库的版本控制。但是,有的项目开发之初,数据库结构的变化会比较频繁,每个都手动创建migrate文件的,工作量会比较大,或者老项目已有数据库,如果手动为所有的已存在的表去创建迁移文件的会非常耗时,还容易出错。这里,就给大家分享一下如何逆向生成迁移文件。本文基...原创 2019-10-28 11:37:51 · 1868 阅读 · 0 评论 -
Laravel事件监听器Listener
第一步:注册事件和监听器。在EventServiceProvider的linsten数组里面加上事件和监听器,键名是事件,键值里面的数组是一个或者多个监听器,意思是当某一个事件发生的时候,传送给数组里面的那些个监听器,执行一些列操作。 这里,我监听发送短信验证码事件,一旦有发送验证码动作,我就要到验证码发送记录表里面添加一条数据,用以记录。app\Providers\EventServ...原创 2018-12-11 11:14:25 · 2411 阅读 · 0 评论 -
Laravel 的生命周期
PHP 的生命周期PHP 的运行模式PHP两种运行模式是WEB模式、CLI模式。当我们在终端敲入php这个命令的时候,使用的是CLI模式。 当使用Nginx或者别web服务器作为宿主处理一个到来的请求时,使用的是WEB模式。生命周期当我们请求一个php文件时,PHP 为了完成这次请求,会发生5个阶段的生命周期切换: 模块初始化(MINIT),即调用 php.ini 中指明...转载 2019-04-09 12:03:31 · 160 阅读 · 0 评论 -
20 个 Laravel Eloquent 必备的实用技巧
转自:https://blog.youkuaiyun.com/summerliguilong/article/details/79984042转载 2019-04-09 13:46:42 · 144 阅读 · 0 评论 -
Laravel 精选资源大全
转自:https://laravelacademy.org/post/153.html转载 2019-04-09 15:00:04 · 241 阅读 · 0 评论 -
laravel ide-helper安装
laravel ide-helper安装引入此包,该命令会自动修改composer.json文件composer require barryvdh/laravel-ide-helper 下载完成后加入config/app.php中的providers数组中Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::cla...原创 2019-04-09 15:32:46 · 856 阅读 · 0 评论 -
浅析 Laravel 官方文档推荐的 Nginx 配置
以 Laravel 5.8 文档 为准,浅析 Nginx 配置。可作为 轻松部署 Laravel 应用 的拓展阅读。方便起见,我在注释中使用 [] 包裹引用配置中的值。server { # 监听 HTTP 协议默认的 [80] 端口。 listen 80; # 绑定主机名 [example.com]。 server_name example.com; ...原创 2019-04-08 17:30:15 · 350 阅读 · 0 评论 -
laravel 定时任务秒级执行
只需在自定义的someCmd.php文件的handle方法加上循环如每3秒执行一次for ($i=1;$i<=20;$i++){ $users = $this->user->getUserIDs(); foreach ($users as $user){ $job = (new TradeJob($user->id));...原创 2019-03-28 14:45:53 · 4133 阅读 · 0 评论 -
Laravel中when的使用
当你在使用where语句有前提条件时,比如某值为1的时候才执行where子句,否则不执行,这个时候,laravel5.5新出了一个简便方法when($arg,fun1[,fun2])。具体用法如下:当$arg为真时,执行闭包fun1,为假时,执行闭包fun2(可选);举个栗子when($arg,function ($q){ return $q->orderBy('id',...原创 2019-01-11 12:10:34 · 2462 阅读 · 0 评论 -
Laravel中with()、has()、whereHas()方法的区别
with()with()方法是用作“渴求式加载”的,那主要意味着,laravel将会伴随着主要模型预加载出确切的的关联关系。这就对那些如果你想加在一个模型的所有关联关系非常有帮助。因为“渴求式加载”缓解了1+N的查询问题,仅需1+1次查询就能解决问题,对查询速度有了质的提升。例如:user > hasMany > post$users = User::with('po...原创 2019-01-11 11:59:31 · 11314 阅读 · 0 评论 -
firstOrCreate、firstOrNew、updateOrCreate 方法使用
在日常开发的过程中,经常会遇到判断一条记录是否存在、存在更新、不存在新建记录这种场景,在 Laravel 中提供了方法支持,那么下面就看下具体的方法;firstOrCreatefirstOrCreate 方法将会使用指定的字段 => 值对,来尝试寻找数据库中的记录。如果在数据库中找不到,5.3 以下版本会使用属性来添加一条记录,5.3 及以上版本则将使用第一个参数中的属性以及可选的第...原创 2019-01-04 10:26:21 · 3823 阅读 · 0 评论 -
Laravel中chunk组块结果集处理
如果需要处理成千上万个Eloquent结果,可以使用chunk命令。chunk方法会获取一个“组块”的Eloquent模型,并将其填充到给定闭包进行处理。使用chunk方法能够在处理大量数据集合时能够有效减少内存消耗:Flight::chunk(200, function ($flights) { foreach ($flights as $flight) { //...原创 2018-12-12 10:05:01 · 1611 阅读 · 0 评论 -
laravel withCount 统计关联数量
统计关联数量,单个用法$posts = Post::withCount('comments')->orderBy('id','desc')->paginate(6);多个用法$posts = Post::withCount(['comments','zans'])->orderBy('id','desc')->paginate(6);调用$post-...原创 2018-12-27 10:14:40 · 7136 阅读 · 0 评论 -
laravel 模型关联
一对一 hasOne (用户->手机号) ->withDefault(); 返回指定默认对象public function phone() { return $this->hasOne('App\Phone', 'user_id', 'id'); }public function user(){ return $this...转载 2018-12-27 10:12:26 · 725 阅读 · 0 评论 -
laravel 组态-配置缓存
为了提高应用程序的速度,您应该使用Artisan命令将所有配置文件缓存到单个文件中。这会将您的应用程序的所有配置选项合并到一个文件中,该文件将由框架快速加载。config:cache通常应该将该命令作为生产部署例程的一部分运行。该命令不应在本地开发过程中运行,因为在应用程序开发过程中,经常需要更改配置选项,即修改 config文件,但是线上环境却很少修改配置文件。执行命令为php artisa...原创 2018-12-27 10:10:51 · 594 阅读 · 0 评论 -
Laravel实时监听打印SQL
创建监听器php artisan make:listener QueryListener --event=Illuminate\\Database\\Events\\QueryExecuted打开 app/Providers/EventServiceProvider.php ,在$listen中添加protected $listen = [ 'Illuminate\Data...原创 2018-12-21 11:07:55 · 738 阅读 · 1 评论 -
Laravel中的$loop
$loop->index: 当前循环迭代的索引(从0开始) $loop->iteration: 当前的循环迭代(从1开始) $loop->remaining: 剩下的迭代数量 $loop->count: 循环中的数据总数 $loop->first: 是否这是循环中的第一条数据,返回Boolean值 $loop->last: 是否这是循环中的最后一...原创 2019-01-07 10:48:53 · 630 阅读 · 0 评论 -
laravel连接sql server 2008
1.准备其中各个的版本:laravel:5.1 php:5.6 SQLSRV:3.2 ODBC driver :11 sql Server:2008注意:SQLSRV 的版本与php的关系Version 4.0 supports PHP 7.0+Version 3.2 supports PhP 5.4 和 5.5 和 5.6Ve...原创 2019-03-13 17:11:30 · 1878 阅读 · 0 评论 -
Laravel框架学习笔记之任务调度(定时任务)
在开发中,常常需要用到定时任务。就是在某个特定时间段执行你需要的功能,特别是在第三方支付中,在用户使用你的某些功能如:提现,转账等等,会用到T+1来给用户做交易,这里就需要定时任务。Laravel简化了定时任务,以前,开发者需要为每一个需要调度的任务编写一个 Cron 条目;现在,Laravel 在框架里定义调度命令,并且服务器上只需要一个 Cron 条目即可。* * * * * php...原创 2019-03-18 15:36:57 · 1237 阅读 · 0 评论 -
Laravel开发规范
转自:https://learnku.com/laravel/t/2079/psr-specification-psr-2-coding-style-specification转载 2019-03-21 16:16:42 · 388 阅读 · 0 评论 -
Laravel 操作redis的各种数据类型
安装redis和连接redis数据库在controller头部引入一、基本使用public function RedisdDbOne() { // 清空Redis数据库 Redis::flushall(); // redis的string类型 Redis::set("laravel","Hello woshi...原创 2019-03-14 18:07:18 · 3128 阅读 · 0 评论 -
Laravel 中使用支付宝、银联支付、微信支付进行支付
Laravel Packages 为 Laravel 提供了强大的扩展功能,为从 1 到 n 提供无限可能,这其中就包括支付, Laravel 官方提供的 Cashier 包集成对 Stripe 的支持,主要用于信用卡支付,而国内更流行的支付方式是支付宝、微信支付和银联支付,下面我们就一起去看看如何在 Laravel 中实现这几种支付方式吧,这里收藏了几个链接:支付宝:http://larav...原创 2019-01-26 12:00:29 · 1330 阅读 · 0 评论 -
Laravel5.5 作为后端API来用的时候,解决跨域的包barryvdh/laravel-cors
laravel作为后端API使用的时候,前端ajax请求的时候 遇到跨域的问题github地址:https://github.com/barryvdh/laravel-cors安装composer require barryvdh/laravel-corsapp/Http/Kernel.php 添加 protected $middleware = [ \Barryvdh\Cors\...原创 2019-01-03 10:05:09 · 823 阅读 · 0 评论 -
Laravel调试工具包 barryvdh/laravel-debugbar
github地址:https://github.com/barryvdh/laravel-debugbar 安装只是开发环境使用composer require barryvdh/laravel-debugbar --dev laravel5.5以上的版本自动加载 不需要其他的操作用法一般被动使用就可以了其他用法 `https://packagist.org/pac...原创 2019-01-03 10:02:17 · 899 阅读 · 0 评论 -
laravel 富文本编辑框overtrue/laravel-ueditor
网站中经常用到富文本编辑框, laravel推荐使用overtrue/laravel-ueditor,overtrue/laravel-ueditor支持上传文件和图片,截图,以及七牛云存储github地址:https://github.com/overtrue/laravel-ueditor 美化文本框:参考https://github.com/jellybool/simple-ue...原创 2019-01-03 09:41:08 · 1357 阅读 · 0 评论 -
Laravel 软删除操作
数据库删除操作如果不需要真正从数据库直接删除,这时候就会用到软删除1.首先在模型中要use SoftDeletes ,该trait 为软删除提供一系列相关方法,此外还要设置$data 属性,将deleted_at置于其中<?phpnamespace App\Model\Backend;use App\Http\Response;use Illuminate\Databas...原创 2018-12-21 10:59:25 · 1472 阅读 · 0 评论