12 2018 档案

摘要:服务器项目中安装git yum install -y git 查看git版本 git --version 初始化git仓库 git init 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中, 阅读全文
posted @ 2018-12-30 16:18 心之所依 阅读(228) 评论(0) 推荐(0) 编辑
摘要:性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论。 这里是简单的列表: 1. 配置信息缓存 使用以下 Artisan 自带命令,把 config 文件夹里所有配置信息合并到一 阅读全文
posted @ 2018-12-30 11:11 心之所依 阅读(411) 评论(0) 推荐(0) 编辑
摘要:一. 安装前准备1. 安装screenyum install screen 2. 安装wgetyum install wget 3. 更新yumyum update 4. 安装额外资源库yum install epel-release 5. 下载最新iuswget https://dl.iuscom 阅读全文
posted @ 2018-12-30 10:58 心之所依 阅读(1592) 评论(0) 推荐(0) 编辑
摘要:批量处理任务的场景在我们开发中是经常使用的,比如邮件群发,消息通知,短信,秒杀等等,我们需要将这个耗时的操作放在队列中来处理,从而大幅度缩短Web请求和相应的时间。下面讲解下Laravel中队列的使用 配置文件 config/queue.php <?php return [ 'default' => 阅读全文
posted @ 2018-12-30 10:53 心之所依 阅读(1553) 评论(0) 推荐(0) 编辑
摘要:服务提供者,在laravel里面,其实就是一个工厂类。它最大的作用就是用来进行服务绑定。当我们需要绑定一个或多个服务的时候,可以自定义一个服务提供者,然后把服务绑定的逻辑都放在该类的实现中。在larave里面,要自定一个服务提供者非常容易,只要继承Illuminate\Support\Service 阅读全文
posted @ 2018-12-30 09:59 心之所依 阅读(2326) 评论(1) 推荐(0) 编辑
摘要:调用: 阅读全文
posted @ 2018-12-29 18:06 心之所依 阅读(730) 评论(0) 推荐(0) 编辑
摘要:我们都知道模板一般会用到继承,导航栏就是一个很好的例子,但是导航栏的数据如何共享,比如有个导航的文件叫在view/navigation.blade.php 为了简单一点,文件里只有设置了一个变量 {{ $cqh }} 现在的要求是每个页面都会用到这个变量,如何共享这个数据呢? 一般这样的操作我会在L 阅读全文
posted @ 2018-12-29 18:01 心之所依 阅读(461) 评论(0) 推荐(0) 编辑
摘要:经常需要将一个字符串分割成一组值,然后赋值给不同的变量。 逐行赋值非常繁琐,于是查了一下 PHP 中是否有类似 python 中 a, b = (a, b) 的操作。 果然有 list 这个关键字,是专门为这个操作而生的。 可以忽略一个值。 阅读全文
posted @ 2018-12-29 16:29 心之所依 阅读(5290) 评论(0) 推荐(0) 编辑
摘要:由于在 chrome 插件中使用了跨域请求,所以需要禁用掉 laravel 默认的 post csrf 检查。 配置方法: 在 app/Http/Middleware/VerifyCsrfToken.php 中,添加 except 规则。 例如: 阅读全文
posted @ 2018-12-29 16:24 心之所依 阅读(685) 评论(0) 推荐(0) 编辑
摘要:在改造一个支付流程,新的流程加入了一个新的数据表字段,但是这个新的字段需要通过计算来填充,所以为了兼容历史数据,必须将已有的数据行重新计算一遍该字段。 这时使用 laravel console 命令就非常方便,因为可以共用 .env 中的数据库连接配置,以及定义好的 model。 自动创建 cons 阅读全文
posted @ 2018-12-29 16:10 心之所依 阅读(936) 评论(0) 推荐(0) 编辑
摘要:在执行 composer update 时,报错 You made a reference to a non-existent script @php artisan package:discover 网上说是 composer 的版本太低,查看了一下当前安装的版本 解决方法,升级 composer 阅读全文
posted @ 2018-12-29 16:04 心之所依 阅读(2594) 评论(0) 推荐(0) 编辑
摘要:php artisan view:clear 阅读全文
posted @ 2018-12-29 16:03 心之所依 阅读(1176) 评论(0) 推荐(0) 编辑
摘要:混淆了 array 与 collection,join 并不支持 collection. array 与 collection 不同的 join 实现 collect([1, 2, 3, 4, 5])->implode('-'); join('-', [1, 2, 3, 4]); 将 array 转 阅读全文
posted @ 2018-12-29 15:58 心之所依 阅读(2158) 评论(0) 推荐(0) 编辑
摘要:例如: firstOrNew 需要手动调用 save,才会保存到数据库。适合同时需要修改其他属性的场景。 firstOrCreate 会自动保存到数据库。适合不需要额外修改其他属性的场景。 注意:MassAssignmentException firstOrCreate 一定要设置 model 的 阅读全文
posted @ 2018-12-29 15:55 心之所依 阅读(2650) 评论(0) 推荐(0) 编辑
摘要:新建了一个 Laravel 的计划任务,配置好 crontab 同时,将当前登录用户,添加到了 www-data 的用户组,以防止无法访问 storage/logs 下的日志文件。 但是,执行了一段时间,导致 web 请求报错 通过 ls -la 查看,可以发现该文件属于当前登录用户,而不是 www 阅读全文
posted @ 2018-12-29 15:30 心之所依 阅读(382) 评论(0) 推荐(0) 编辑
摘要:现实问题 之前同事做了一个 composer package,做为公司大量 laravel 项目的通用模块。 但是,在实际使用中,每个项目对改 package 的依赖版本是有所不同的。否则 composer update 会默认拉取最新的 dev-master 中的代码。 术语 VCS Versio 阅读全文
posted @ 2018-12-29 15:10 心之所依 阅读(313) 评论(0) 推荐(0) 编辑
摘要:目标是实现后台缓存最近的 50 次 IP 查询,展示到 IP 查询页面 中。 同时对最近的 IP 查询结果做缓存。 redis 定长 list 的使用,保存最近50次查询结果 参考 redis 官方文档 https://redis.io/commands/ltrim 逻辑是,每次 push 之后,执 阅读全文
posted @ 2018-12-29 15:05 心之所依 阅读(627) 评论(0) 推荐(0) 编辑
摘要:在写 feed 流功能时,经常要用到 Carbon 的 diffForHumans 方法,以方便返回直观的时间描述。 例如 10秒前 5分钟前 但是,默认 Carbon 并不会遵守 laravel config 中的 locale,需要特别指定。 编辑 app/Providers/AppServic 阅读全文
posted @ 2018-12-29 15:00 心之所依 阅读(737) 评论(0) 推荐(0) 编辑
摘要:$ composer remove phpunit/phpunit --dev $ composer require phpunit/phpunit --dev 阅读全文
posted @ 2018-12-29 14:54 心之所依 阅读(4283) 评论(0) 推荐(0) 编辑
摘要:例如,我想在 laravel 的事务中,对某个外部变量赋值,然后在后续的逻辑中判断该变量的属性 这样会报错 Trying to get property of non-object at 也就是说,在 PHP 中,即使是对象也不会默认采用引用的方式传参。 需要修改为 果然,我还是个 PHP 初学者。 阅读全文
posted @ 2018-12-29 14:51 心之所依 阅读(1705) 评论(0) 推荐(0) 编辑
摘要:用户上传了 4 个附件,每个小于 5M,但是总大小超过了 15 M。 在 Nginx 日志中找到了如下错误信息,还没有到 Laravel 日志那一层。 2018/08/13 10:14:38 [error] 8326#8326: *11432788 FastCGI sent in stderr: " 阅读全文
posted @ 2018-12-29 14:39 心之所依 阅读(3817) 评论(0) 推荐(0) 编辑
摘要:在 windows WSL 上安装 composer 依赖 发现执行异常缓慢,怀疑没有走国内的镜像,而是直接访问的 github。 需要能看到 composer 的执行日志 发现 composer 的参数支持 于是 果然,都是走的 github。。。 我更新成 https://laravel-chi 阅读全文
posted @ 2018-12-29 14:37 心之所依 阅读(3463) 评论(0) 推荐(0) 编辑
摘要:两种情况: 使用 Model 的查询 例如: 使用 DB::table 的查询 如果直接对结果中的 datetime 做 format,会报错 Call to a member function format() on string 因为 DB::table 返回的结果都是 string,没有关联 阅读全文
posted @ 2018-12-29 14:32 心之所依 阅读(7980) 评论(0) 推荐(0) 编辑
摘要:之前尝试过对 Laravel 的 Controller 做 Feature Test,但是在业务变得越来越复杂之后,我感觉对 controller 里的函数也没了自信,急需对功能函数做 Unit Test,以平复我不安的情绪。 例如: 新建一个 Unit Test,由于默认新建的是 feature 阅读全文
posted @ 2018-12-29 11:52 心之所依 阅读(768) 评论(0) 推荐(0) 编辑
摘要:Carbon 继承了 PHP DateTime 类,所以 DateTime 类的方法同样适用于 Carbon 类。 初始化一个日期 本月第一天,上月第一天 今日日期 当前时间 时间差 参考 https://carbon.nesbot.com/docs/ 阅读全文
posted @ 2018-12-29 11:46 心之所依 阅读(4923) 评论(0) 推荐(0) 编辑
摘要:记录一下 Laravel Storage 的常见用法 内容写入磁盘文件 文件默认创建在 /storage/app 目录下 获取文件存储的本地磁盘全路径 继续在 tinker 中测试一下 可见,应该是 storage_path('app/test.txt') 删除文件 文件默认存储路径是在哪里设置的 阅读全文
posted @ 2018-12-29 11:29 心之所依 阅读(14823) 评论(0) 推荐(1) 编辑
摘要:之前调用一个三方的 WEB API,大量的请求超时,导致 PHP 进程被占用完。整个网站一直报 504。 其中一个优化措施就是对三方 API 调用设置超时时间。 timeout 默认值是 0, 即一直等待,这非常危险。所以这里改成了 1.5 秒。 阅读全文
posted @ 2018-12-29 11:27 心之所依 阅读(6551) 评论(0) 推荐(1) 编辑
摘要:job 是异步执行。适合耗时长的任务。例如,批量发送邮件,短信。 event 是在 request 的生命周期内执行。适合耗时短的操作。例如,更改数据字段状态。 但是, event 的好处是,可以复用各种监听。例如,事件 A1 可以触发 B1, B2; 事件 A2 可以触发 B1, B2, B3。 阅读全文
posted @ 2018-12-29 11:23 心之所依 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:由于我不习惯于使用 laravel migration 来管理数据表变更,所以很多项目都是无法直接执行 否则会报错 SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists 即,这些本该 阅读全文
posted @ 2018-12-29 11:20 心之所依 阅读(2608) 评论(0) 推荐(0) 编辑
摘要:在 Laravel model 中,设置了某个属性做 array casting. 但是在 controller 中执行 时,报错 production.ERROR: Indirect modification of overloaded property 可见,casting 并不支持一些针对特定 阅读全文
posted @ 2018-12-29 11:18 心之所依 阅读(6265) 评论(0) 推荐(0) 编辑
摘要:钉钉微应用的 Access token 如何获取? Access_Token 是企业访问钉钉开放平台全局接口的唯一凭证,即调用接口时需携带Access_Token。从接口列表看,所有接口都需要携带 access token。 对于企业接入来说,AccessToken 需要用 CorpID 和 Cor 阅读全文
posted @ 2018-12-29 11:00 心之所依 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:网站中,许多页面的侧边栏是相同的。例如: 分类列表页,与文章详情页的侧边栏都包含 最新文章 最新评论 统计计数 这些相同的侧边栏数据也是动态的,并不是固定的。 在每个 controller 里都写一遍数据读取逻辑,并赋值给模板,这样做有几个弊端 重复编码量不小。即使提取成函数,也要手动将变量传递给模 阅读全文
posted @ 2018-12-29 10:32 心之所依 阅读(580) 评论(0) 推荐(0) 编辑
摘要:验证缓存文件是否会自动删除的目的是,防止产生大量的缓存文件,占满磁盘。因为,我最近越来越多的使用 cache 来缓存各类 token。 使用的是 file 作为 CACHE_DRIVER 首先生成一个 cache 此时检索 cache 文件存储的位置 1 分钟之后,再次获取 cache,已确保 ca 阅读全文
posted @ 2018-12-29 10:12 心之所依 阅读(4650) 评论(1) 推荐(0) 编辑
摘要:例如,要使用手机号加验证码的方式提供登录网站的功能,那么在处理前端提交的 form 表单时,就不得不对提交的手机号及验证码做基本的数据校验。 手写规则,非常浪费时间。使用 laravel 内置的 validation 功能可以节省大量的代码及时间,而且可读性好一万倍。 新建一个 request 使用 阅读全文
posted @ 2018-12-29 09:49 心之所依 阅读(1778) 评论(0) 推荐(0) 编辑
摘要:返回指定字段 返回关系字段关联的属性 注意,如果要返回关系字段的信息,一定要将对应的 id 字段加入到 select 中。否则关系字段会显示为 null. 返回关系字段关联的指定属性 eager load With 这种写法,在 laravel 中称之为 eager load。 Eager:热切渴求 阅读全文
posted @ 2018-12-29 09:26 心之所依 阅读(4308) 评论(0) 推荐(0) 编辑
摘要:最佳方式 耗内存的方式 等同于 耗内存的原因是,随机序需要建立临时表。 更加耗内存的 Collection 方案 阅读全文
posted @ 2018-12-29 09:24 心之所依 阅读(1290) 评论(0) 推荐(0) 编辑
摘要:以下为我创建的一个 API Validator 的 VIM Code Snippet 为何要使用 validator after after 的调用时机是在主动调用 fails 的时候,这样做非常方便去添加一些我们业务相关的自定义校验规则 阅读全文
posted @ 2018-12-29 09:19 心之所依 阅读(368) 评论(0) 推荐(0) 编辑
摘要:/** * 获取组织分类后群数据 * @param UrlManager $urlManager * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function getOfficialGroupMy(UrlManager $urlMa... 阅读全文
posted @ 2018-12-28 19:18 心之所依 阅读(206) 评论(0) 推荐(0) 编辑
摘要:在用 Laravel Backpack 写一个定制化的 CRUD 页面。例如,一个指定店铺所拥有的商品的 CRUD 页面。 起初路由我是这样写的 报错 Route pattern "/products-of-store/{store_id}/{{store_id}}" cannot referenc 阅读全文
posted @ 2018-12-28 16:08 心之所依 阅读(543) 评论(0) 推荐(0) 编辑
摘要:最近线上 Laravel 错误日志发现了一个异常 HTTPException Too Many Attemps 而我一个同事在本地开发的过程中也频繁遇到这个异常。测试环境:Laravel 5.5。 网上查了一下,是 Laravel 5.2 引入的 throttle middleware 造成的。 源 阅读全文
posted @ 2018-12-28 15:58 心之所依 阅读(1218) 评论(0) 推荐(0) 编辑
摘要:开发机上升级了 MySQL 8.0, 原有的 Laravel 5.5 项目就启动失败了。 报错信息是: 解决方法是: config/database.php 中的 strict 值修改成 false. 阅读全文
posted @ 2018-12-28 15:55 心之所依 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:代码复用在项目中早晚会遇到,这不在用 Laravel 给博客增加 Feed 订阅功能 就到了需要将生成网页 description 的函数提取出来,在文章显示与 Feed 生成的两个 Controller/Template 间复用。 定义一个类 在 config/app.php 中添加 alias, 阅读全文
posted @ 2018-12-28 15:54 心之所依 阅读(251) 评论(0) 推荐(0) 编辑
摘要:1. 继承、片段、占位、组件、插槽 1.1 继承 1、定义父模板 Laravel/resources/views/base.blade.php 2、子模板继承 @extends('base') 1.2 片段 1、父模板定义片段 @section('part') // 中间内容即使是一个片段 @sho 阅读全文
posted @ 2018-12-28 14:57 心之所依 阅读(5323) 评论(0) 推荐(0) 编辑
摘要:用过 Nginx 的兄弟都知道,修改 Nginx 配置文件之后,可以使用 来检测配置文件是否有语法错误。 今天配置 opcache 的时候,发现 php-fpm 也可以检测 php-fpm.conf , php.ini 等配置文件的正确与否。 没有问题之后,就可以重启 fpm 服务了。 Fatal 阅读全文
posted @ 2018-12-28 12:01 心之所依 阅读(3142) 评论(0) 推荐(1) 编辑
摘要:base layout 中需要使用 继承的 blade 中需要使用 其会覆盖父模板中的内容。 如果需要基于原 layout section 附加内容 @yield 类似于 @section/show 的用法,但是其继承者不能使用 @parent。 阅读全文
posted @ 2018-12-28 11:59 心之所依 阅读(1501) 评论(0) 推荐(0) 编辑
摘要:重置数据库数据 update products set updated_at = created_at; 阅读全文
posted @ 2018-12-28 11:57 心之所依 阅读(896) 评论(0) 推荐(0) 编辑
摘要:避免并发执行 这里需要注意,对于 call function 定义的计划任务,需要定义 name。否则会报错 production.ERROR: A scheduled event name is required to prevent overlapping. Use the 'name' met 阅读全文
posted @ 2018-12-28 11:51 心之所依 阅读(1489) 评论(0) 推荐(0) 编辑
摘要:Laravel 自带了两种测试类型 Feature Test: 功能测试。针对类似接口这种流程性的测试。 Unit Test: 单元测试。针对单个函数这种输入输出结果的测试。 新建一个 Feature Test 项目根目录下多了一个文件 tests/Feature/FinishOrderTest.p 阅读全文
posted @ 2018-12-28 11:41 心之所依 阅读(1398) 评论(0) 推荐(0) 编辑
摘要:Model 中,如果启动了 timestamps 默认,laravel 会操作对应数据表的 created_at, updated_at 字段。 但是,有时由于是历史遗留项目,对应的数据库字段名不是 created_at, updated_at 就需要指定字段。例如 阅读全文
posted @ 2018-12-28 11:22 心之所依 阅读(4053) 评论(0) 推荐(0) 编辑
摘要:例如 定义了 name 字段可以写入/修改,而 price 字段不可以。 需要注意的是,fillable 与 guarded 只限制了 create 方法,而不会限制 save。 我觉得 Laravel 这样设计的原因是,create 通常是使用 request 中的所有请求参数来创建对象,而 sa 阅读全文
posted @ 2018-12-28 11:18 心之所依 阅读(845) 评论(0) 推荐(0) 编辑
摘要:https://github.com/Laravelium/laravel-sitemap add the following to your composer.json file : For Laravel 5.7 "laravelium/sitemap": "3.0.*" For Laravel 阅读全文
posted @ 2018-12-27 18:53 心之所依 阅读(703) 评论(0) 推荐(0) 编辑
摘要:$str="你好<我>(爱)[北京]{天安门}"; echo f1($str); //返回你好 echo f2($str); //返回我 echo f3($str); //返回爱 echo f4($str); //返回北京 echo f5($str); //返回天安门 function f1($st 阅读全文
posted @ 2018-12-27 11:41 心之所依 阅读(1601) 评论(0) 推荐(0) 编辑
摘要:begin declare debug int; set @debug = 0; if @debug = 1 then insert into task_monitor(info) values('start'); end if; update get_moneys a, user_get_moneys u set a.status=1, a.brought_number=0, a.pe... 阅读全文
posted @ 2018-12-25 18:55 心之所依 阅读(249) 评论(0) 推荐(0) 编辑
摘要:/** * 网络图片转换到本地并转换成base64位 * @param $url * @return string */ public function imgzhuanhuan($url) { //网络图片路径 // $url='https://img.jinse.com/1435941_small.png'... 阅读全文
posted @ 2018-12-24 18:22 心之所依 阅读(2358) 评论(0) 推荐(0) 编辑
摘要:/** * 获取某年第几周的开始日期和结束日期 * @param int $year * @param int $week 第几周; */ public function weekday($year,$week=1){ $year_start = mktime(0,0,0,1,1,$year); $ 阅读全文
posted @ 2018-12-22 10:05 心之所依 阅读(1840) 评论(1) 推荐(0) 编辑
摘要:/** * 科学计数法转换成数字 * @param $num * @param int $double * @return int */ function sctonum($num, $double = 5){ if (false !== stripos((string)$num, "E")) { 阅读全文
posted @ 2018-12-22 09:47 心之所依 阅读(5271) 评论(0) 推荐(0) 编辑
摘要:数组&对象 1.array_divide() 结果: 2.array_dot() 结果: 3.array_except() 结果: 4.array_first() 结果: 将默认值作为第三个参数传递给该方法。如果没有值通过测试,则返回该值:$first = array_first($array, $ 阅读全文
posted @ 2018-12-07 18:34 心之所依 阅读(9741) 评论(0) 推荐(2) 编辑
摘要:比如:文章控制器ArticleController.php查询文章列表数据的时候用withCount连接Comment,Zan模型直接统计每篇文章的评论和点赞数量。 使用之前需要在文章模型文件Article.php中建立与评论和赞模型的关联关系,且方法名字和withCount里面填写的一样。 Art 阅读全文
posted @ 2018-12-07 15:04 心之所依 阅读(939) 评论(0) 推荐(0) 编辑
摘要:<?php namespace Illuminate\Database\Eloquent; /** * 下面提到某些词的含义: * 1、覆盖: 在继承该类 \Illuminate\Database\Eloquent\Model 的自定义的模型类中, 定义一个同名 field,值不一样 */ abst 阅读全文
posted @ 2018-12-07 14:57 心之所依 阅读(953) 评论(0) 推荐(0) 编辑
摘要:laravel的启动过程,也是laravel的核心,对这个过程有一个了解,有助于得心应手的使用框架,希望能对大家有点帮助。 统一入口 laravel框架使用了统一入口,入口文件:/public/index.php <?php //自动加载文件设置 require __DIR__.'/../boots 阅读全文
posted @ 2018-12-07 14:51 心之所依 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:虽然Composer使得我们可以重用很多现有的类库(例如packagist.org中的),但是我们仍然可能用到一些不兼容composer的包或者类库。另外在某一项目中,我们也可能会创建某一类库,而且可能并没有制作成为composer package 的打算。这个时候我们可以通过以下方式来使用自己的特 阅读全文
posted @ 2018-12-07 11:48 心之所依 阅读(1591) 评论(0) 推荐(0) 编辑
摘要:Carbon 是继承自 PHP DateTime 类 的子类,但比后者提供了更加丰富、更加语义化的 API。其中一个比较实用的 API 就是 diffForHumans 方法,几乎每个用 Laravel 构建的项目中都有用到它。 比如,一个博客系统里的文章发布时间,显示格式可能就像下面这样: **距 阅读全文
posted @ 2018-12-07 11:15 心之所依 阅读(865) 评论(0) 推荐(0) 编辑
摘要:1. 快速生成 Model & Migration 这并不是一个很多人知道的小技巧,为文章生成 Model 和 Migration。 $ php artisan make:migration create_posts_table $ php artisan make:model Post 大部分人可 阅读全文
posted @ 2018-12-07 10:59 心之所依 阅读(400) 评论(0) 推荐(0) 编辑
摘要:/** * 转发动态和资讯数量统计 */ public function forwardCounts(FeedModel $feedModel) { //统计动态转发的id $feeds=$feedModel->where('forward_type','feeds') ->pluck('for... 阅读全文
posted @ 2018-12-05 14:58 心之所依 阅读(6140) 评论(0) 推荐(0) 编辑
摘要:public function getCurrencyOrder($user_id=70,$pid=252,$register=['register:first']) { DB::connection()->enableQueryLog(); // 开启查询日志 $data=CurrencyOrder::selectRaw("sum(amount) AS t... 阅读全文
posted @ 2018-12-03 17:31 心之所依 阅读(1416) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示