比起工程師,更傾向於成為一名工匠。
博客文章
最近发表的话题
最近发表的评论
  • 最近一波面试题分享(新浪,链家,金融) at 2个月前

    這兩年的面試題很愛考 PHP 弱型別的實現跟變數的儲存方式,估計是被 PHP 5->7 的轉變給嚇到了。

    問 Nginx 源碼估計是因為 Nginx 的實現其實很平易近人(相較於 MySQL 而言),有 Linux Kernel 原始碼閱讀經驗的人其實讀 Nginx 原始碼不會太難。

    ps. 一個大學本科生出來如果沒有粗略讀過 Linux Kernel 的源碼實在是有點可惜

  • Symfony 4.1 路由将提速 5 倍 at 4个月前

    Laravel 今天下 composer update 就會升級到 4.1 的 routing

  • 翻译了一下 Laradock 的中文文档 at 5个月前

    @leung0826 應該是 Windows 10 對 Docker Volume 的效能比較差的緣故,在 docker/for-win #188 有討論過

  • 從 RFC 看看 PHP 7.3 會有什麼新玩意兒 at 7个月前

    @leo 現在有殘廢的 lambda,好像在 2008 年有人提過,但是通過的只有 Closure 這個 Feature。

  • 在 CentOS7.2 中给了 laravel.5.5 目录 777 的权限不起作用? at 8个月前

    把 SELinux 關閉或是下 sudo chcon -Rt httpd_sys_content_t gyt && sudo chcon -Rt httpd_sys_rw_content_t gyt

  • 【PHP - 雷】foreach 與 reference 的雷 at 10个月前

    @xhh110 沒錯,只不過要注意在同個變數存在域下不可對同個變數進行賦值,與其檢查這個不如直接用完就隨手 unset

  • 【PHP - 雷】foreach 與 reference 的雷 at 10个月前

    @Lichmaker 這個出成筆試題就有點不太厚道了。

    我一直在強調,人腦不是、也不該是 compiler,不該用很刁鑽或炫技的考題來測試面試者。

  • 如何高效地学习 Laravel 框架? at 10个月前

    一開始學習就從文件開始啃的路過……

    想當年還是 Laravel 4.2,有系統性的教學資源還沒有這麼多,當時被一堆新觀念如 Dependency Injection、IoC 之類的搞得暈頭轉向。

    之後到了 Laravel 5.0,又來一狗票 namespace 之類的新玩意一下子無法接受。最後花了一整個暑假,把當時 Laravel 5.1 LTS 的程式碼全看完,才漸漸瞭解到 Laravel 設計上的先進之處。

    雖然仍有缺憾,但就把「想法 => 原型 => 成品」的工作流程看來,Laravel 算是 PHP 中最優秀的解決方案。

  • 【教程】以 Docker 實現多 PHP 版本自動化測試 at 11个月前

    @MrJing 現在的架構是完全沒有用到容器化技術,不過有考慮導入,所以我先研究了一下

  • 【教程】以 Docker 實現多 PHP 版本自動化測試 at 11个月前

    順帶一提,只使用 Dockerfile 的原因還有因為這樣可以比較容易遷移到 rkt 或其它的容器服務上。

    不會被綁死在 docker 這一個容器服務

  • Chrome 自动升级后,本地项目都无法访问 at 11个月前

    補充個小知識

    根據 RFC 2606,只有 .test.example.invalid.localhost 四個域名是會被安全保留的,各測試用域名詳細使用方式可以參見 RFC 2606

    包括 Laravel 官方所使用的 .app.dev 都不是合規範的保留域名

    前陣子,Google 說要推 .dev 的域名,嚇死一票開發者

  • 分享一下 Laravel、PHPer 面试可能会遇到的问题(已更新部分答案) at 1年前

    @Rekkles 欸抖,因為牽涉到我最近在找工作的事兒,我先刪掉留言好了

  • 【心得】CodeIgniter 與 Laravel 的比較 at 1年前

    @开水养鱼

    我記得他的廁所有三間,兩間是坐式的,一間是蹲式的

    不過那天面試我走得有點太急,沒去看他們到底有幾間廁所

  • 【心得】CodeIgniter 與 Laravel 的比較 at 1年前

    @Summer @Tao

    為什麼所有人的重點都在馬桶上啦 XDDDD

  • 【心得】CodeIgniter 與 Laravel 的比較 at 1年前

    @MrJing 其實免治馬桶在表達的是對方的廁所很高級,我很喜歡而已,有沒有這個功能對我來說其實還好 XD。

  • 【心得】CodeIgniter 與 Laravel 的比較 at 1年前

    @李曦赞 到哪都有維護老項目的人,但維護得好不好又是另外一個故事了

  • 【心得】CodeIgniter 與 Laravel 的比較 at 1年前

    @Chrisyes 其實這是個比較級,在 CodeIgniter 中要使用第三方套件的難度比 Laravel 做 Service Provider 來得簡單。

    不過 Laravel 中也是能夠不通過 Service Provider 引用第三方套件,只是不太推薦就是了

  • 怎么在 Laravel 的 Model 里加数据库连接池? at 1年前

    這要看你給 Eloquent 的 Driver。

    從 PHP 的角度來講,有四種方法可以實現 Database Connection Pooling

    1. MSSQL pconnect(在 PHP 7.0 被移除,應該用 PDO 取代)
    2. PDO 的 ATTR_PERSISTENT
    <?php
        $dbh = new PDO(PDO_DSN, USERNAME, PASSWORD, [
            PDO::ATTR_PERSISTENT => true,
        ]);

    這種方法可以用 PDO 建立長連線(不間斷連線)

    在 Laravel 中可以這樣設定

    // config/database.php
    
    return [
        'connections' => [
            'mysql' => [
                'driver' => 'mysql',
                // ...
                'prefix'    => '',
                'options'   => [
                    PDO::ATTR_PERSISTENT => true,
                ],
            ],
        ],
    ];

    不過官方也有說明,如果 driver 支援長連接(例如 ODBC)就用 ODBC 原生的方法做,因為這樣不僅能讓單一應用程式使用 Connection Pooling,也能以 Process 的方式共享 Connection Pooling

    1. ODBC Connection Pooling

    前提是 ODBC 的 driver 跟 library 有支援,然後直接把 driver 改成 ODBC,然後用 PDO_ODBC 去連接資料庫,記得在 php.ini 中設定 pdo_odbc.connection_pooling=strict/relaxed/off

    1. freeTDS

    這是在網路上看到的做法,它是利用 linux process 去管理 connection,不確定現在還能不能用

    結論

    最簡單的做法是直接在 config/database.php 中加入一個 options,不過如果同一台伺服器上有超多個 connection 需求(建置有多個服務的話)那記憶體或磁碟 IO 使用量會很可觀。

    比較複雜但完善的解決方法是使用支援 Connection Pooling 的 ODBC Driver,好處是不僅只限連接 MySQL,也可以無痛擴充連接 MSSQl 或 Oracle SQL(除了 SQL 語法之外的無痛),壞處是建置成本比較高(需要花點時間摸索跟研究)

  • 去掉 Laravel 项目中引入的 Raleway 字体 at 1年前

    因為一個眾所周知的原因 :smile:

  • 大家都在哪里看片? at 1年前

    巴哈姆特動畫瘋、LoveTVShow、Netflix