Laravel/Angular
发表过的专栏文章
最近发表的话题
最近发表的评论
  • Laravel 学习笔记之 Toran Proxy 搭建私有 Packagist 镜像 at 2周前

    @wujunze 有限制,放在公网,但是首先需要 basic 认证,然后是用的微软的二次认证,需要 app 点击通过才行,别人就算知道了我的账号密码也不会登录进来。。

  • 记 Laravel 模型 deleted 事件未被触发领悟 at 3个月前

    @free-andy 是,这些还是靠多找文章看多实践,都是这么过来的。

  • 记 Laravel 模型 deleted 事件未被触发领悟 at 3个月前
    $user = User::find(1);
    $user->delete();

    这个是调用 \Illuminate\Database\Eloquent\Model:delete() 方法,源码里写了会在 delete 前后触发 deletingdeleted 事件,源码是:

    public function delete()
        {
            if (is_null($this->getKeyName())) {
                throw new Exception('No primary key defined on model.');
            }
    
            // If the model doesn't exist, there is nothing to delete so we'll just return
            // immediately and not do anything else. Otherwise, we will continue with a
            // deletion process on the model, firing the proper events, and so forth.
            if (! $this->exists) {
                return;
            }
    
            if ($this->fireModelEvent('deleting') === false) {
                return false;
            }
    
            // Here, we'll touch the owning models, verifying these timestamps get updated
            // for the models. This will allow any caching to get broken on the parents
            // by the timestamp. Then we will go ahead and delete the model instance.
            $this->touchOwners();
    
            $this->performDeleteOnModel();
    
            // Once the model has been deleted, we will fire off the deleted event so that
            // the developers may hook into post-delete operations. We will then return
            // a boolean true as the delete is presumably successful on the database.
            $this->fireModelEvent('deleted', false);
    
            return true;
        }

    User::where('id', 1)->delete();

    调用的是 Illuminate\Database\Eloquent\Builder::delete(),然后调用 Illuminate\Database\Query\Builder::delete() ,源码里没有加上事件,直接删除数据了,Illuminate\Database\Query\Builder::delete() 源码是:

    public function delete($id = null)
        {
            // If an ID is passed to the method, we will set the where clause to check the
            // ID to let developers to simply and quickly remove a single row from this
            // database without manually specifying the "where" clauses on the query.
            if (! is_null($id)) {
                $this->where($this->from.'.id', '=', $id);
            }
    
            return $this->connection->delete(
                $this->grammar->compileDelete($this), $this->cleanBindings(
                    $this->grammar->prepareBindingsForDelete($this->bindings)
                )
            );
        }
    

    文档仅是源码的介绍,还得看源码怎么写的。。

  • <你不懂 JS(系列丛书)> at 3个月前

    @flyingfishzxf 这个gitbook的翻译者牛啊,佩服这些翻译者花时间翻译这些好资源。。

  • 几句话熟悉 Laravel/Symfony 事件系统 at 3个月前

    @wangat 说的没错。总之,利用框架,又不局限于框架呗。

  • 几句话熟悉 Laravel/Symfony 事件系统 at 4个月前

    @梦康 恩恩,这样也挺好,后端框架相互融合,相互学习,都不用吵架了,像前端那些框架那样,哈哈。

  • 请教各位前辈,你們在开发的时候有什么好的测试方法可以教教我吗? at 4个月前

    @lalalalalaTwoEyes Chrome Dev Tool里,前端加载来的js文件有3、4M了啊,这个太大了。。我不知道Apache怎么打开gzip压缩,但是它应该也支持这个功能。。

  • 社区翻译功能上线 :star2: at 4个月前

    @Seaony 牛逼💯,这个功能好啊。。

  • PHP 中的代码依赖管理(大量的 Composer 技巧来袭) at 4个月前

    我擦,这个功能牛逼了。。Summer站长一出手,全体敬礼啊。。

  • 请教各位前辈,你們在开发的时候有什么好的测试方法可以教教我吗? at 4个月前

    @lalalalalaTwoEyes 最近也在写一本关于测试的小书,java不是有JUnit的测试框架么,PHP世界也有对应的PHPUnit测试框架,写测试主要写单元测试和集成测试了,你可以先看看PHPUnit官网上先玩玩PHPUnit,官网有中文资料。
    js/css加载速度优化,那就放在CDN上了么。大小优化的话,一个3M的js文件,这个太恐怖了,这个js文件有被作者minified和tree-shaking了没,这个工作可以用前端构建工具Webpack来做就行,最后服务器nginx开启gzip压缩,这样传过来的js是被gzip压缩过的,小好几倍。

  • 推荐一本 Laravel 书籍<Laravel 框架关键技术解析> at 4个月前

    @打奥特曼的小怪兽 同意, laradock 很重,里面东西很丰富,不过作为学习docker一个很好的模板。

  • 推荐一本 Laravel 书籍<Laravel 框架关键技术解析> at 4个月前

    @打奥特曼的小怪兽 你是说《Laravel 框架关键技术解析》的环境配置吗?恩,毕竟这本书出来也有一段时间了。环境配置这块知识陈旧的话,可以很好解决,很容易按照网上教程搭建环境就行。

  • 详解 Laravel 源码中优秀的设计模式 at 4个月前

    我买了,体验了下,花了十来块元左右,但可以学习Laravel的一些设计模式,还是很划算的。尽管目前还没学习完。之前也想总结Laravel中使用的设计模式这个知识点。通过《详解 Laravel 源码中优秀的设计模式》的机会,又可以借机深入复习下Laravel的优秀源码。个人感悟而已。。

  • 一个将会是国内最高品质的 Python 社区,大家一起来见证 at 4个月前

    溜溜溜,圈地运动。。。

  • [开源项目] 基于 Laravel5.5 与 VUE2 前后端分离的兼职平台,顺带求职 at 4个月前

    厉害啊,不错不错。。

  • 一步步教你如何使用 laradock 搭建项目环境 at 4个月前

    先收藏,再实践。

  • [求职] [北京] 个人简历 at 4个月前

    牛牛的田野哥。

  • Laravel 跨域解决方案 at 4个月前

    @里暮色中 修改nginx配置并没有不灵活,相反很灵活啊。给API项目实现跨域,这是个需求,并不是所有后端API项目都需要实现跨域需求。

  • Laravel 跨域解决方案 at 4个月前

    如果是跨域,是作者提到的思路,需要给后端api项目添加cors middleware就行;
    如果前端项目html/后端项目api在同一个域下(如前端是localhost:8080,后端是localhost:8080/api/v1/accounts),可以通过nginx配置(/var/www/html是前端项目,/var/www/api是后端项目),然后启动nginx进程/php-fpm进程就能work了(这里nginx.conf把请求转发到9000端口,php-fpm.conf中也得监听这个9000端口,可以修改端口但需要保持统一):

    server {
            listen       8080;
            server_name  localhost;
            root  /var/www/html/dist;
    
            location / {
                try_files $uri $uri/ /index.html$is_args$args;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            location /api/ {
                root /var/www/api/public;
                rewrite ^/api/(.*)$ /$1 break;
                try_files $uri $uri/ /api/index.php$is_args$args;
    
                location ~ \.php$ {
                    rewrite ^/api/(.*)$ /$1 break;
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    include        fastcgi_params;
                }
            }
        }

    关于对nginx的配置指令感兴趣,可以参考nginx.org官网学习下就行。

  • 【Composer 包分享】 codedungeon/phpunit-result-printer 优雅的展示 PHPUnit 测试结果 at 4个月前

    这个package不错,有意思。