<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                注冊不講了,github授權。 該工具的研究來源于我看了一個工具[php monitor](https://github.com/laynefyc/php-monitor/blob/master/README-zh_CN.md) 的里面有一個擴展,tidaways。官方個給的 [windows擴展](https://ci.appveyor.com/project/tideways/php-profiler-extension) 點過去卻看不到構建產物。 ![](https://img.kancloud.cn/8e/3d/8e3d1a0b56967f55dbcfe0dba6334354_1034x331.png) ![](https://img.kancloud.cn/35/d8/35d890833f201efaab677f926097d897_1046x306.png) 于是研究了下如何用他自己生成windows用的php擴展。 首先,是自己fork了一下官方的倉庫到yangweijie 賬號下。 登錄后有個導入項目 ![](https://img.kancloud.cn/d8/1a/d81af5c1920a39f89b356e9f1e2c9657_1056x896.png) 將其導入。因為里面如果需要交互發布zip 作為release 到github 那肯定需要github 的token 的。所以想著是將倉庫轉私有 再新建導入。結果發先fork 的不能轉私有。網上有說免費如何用私有庫的,沒試。 主要是將官方的token 通過加密后再寫到.deplo 里的auth_token 里。本來想著用環境變量的,結果折騰半天讀取不對。 ![](https://img.kancloud.cn/f0/09/f009b5be376d8feaf0d0b782a84aff4e_1259x909.png) 原官方 appveyor 配置。 ~~~ yaml image: Visual Studio 2015 version: '{branch}.{build}' cache: - c:\build-cache -> .appveyor.yml, .appveyor/*.cmd environment: PHP_BUILD_CACHE_BASE_DIR: c:\build-cache PHP_BUILD_OBJ_DIR: c:\obj PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0 SDK_REMOTE: https://github.com/OSTC/php-sdk-binary-tools.git SDK_BRANCH: php-sdk-2.2.0 matrix: - PHP_REL: 8.0 ARCHITECTURE: x64 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 PHP_BUILD_CRT: vs16 - PHP_REL: 8.0 ARCHITECTURE: x64 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 PHP_BUILD_CRT: vs16 - PHP_REL: 8.0 ARCHITECTURE: x86 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 PHP_BUILD_CRT: vs16 - PHP_REL: 8.0 ARCHITECTURE: x86 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 PHP_BUILD_CRT: vs16 - PHP_REL: 7.4 ARCHITECTURE: x64 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.3 ARCHITECTURE: x64 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.2 ARCHITECTURE: x64 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.4 ARCHITECTURE: x64 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.3 ARCHITECTURE: x64 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.2 ARCHITECTURE: x64 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.4 ARCHITECTURE: x86 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.3 ARCHITECTURE: x86 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.2 ARCHITECTURE: x86 ZTS_STATE: enable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.4 ARCHITECTURE: x86 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.3 ARCHITECTURE: x86 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 - PHP_REL: 7.2 ARCHITECTURE: x86 ZTS_STATE: disable APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 PHP_BUILD_CRT: vc15 install: - .appveyor\install.cmd build_script: - .appveyor\build.cmd ~~~ 可以看出來 和 github action 編譯php擴展一樣。用到了矩陣。 我們要做的就是補上gitbub 部署那步。 官方文檔是這么寫的, ![](https://img.kancloud.cn/36/ac/36aca61f7a5d85e7fda57328427631cf_790x277.png) auth_token 通過account 里的加密yaml ![](https://img.kancloud.cn/10/03/1003cfe2cfa21c6add3056a4bcf06c55_1039x466.png) 獲取到就行,別人最多拿到加密后字符串也沒法操作你的github其他 只能用于構建。 然后我就嘗試構建。 ![](https://img.kancloud.cn/a6/d8/a6d88529e74e9d53e962f64ae8e6b4c9_1031x663.png) 經過多此嘗試后終于構建成功了第一次。 點擊項目下 構建歷史,右面顯示 jobs ![](https://img.kancloud.cn/23/6b/236b30de01b0bbdb72e5feea3d18825f_1039x320.png) 能看到4個job 因為我精簡了, 只構建7.4, 8.0 (x86、x64)。不然一個任務job不完成,會影響下次提交導致的構建(排隊中)。只能手動取消。他文檔里說 可以在構建初始化時后,rdp遠程連接電腦看。 ![](https://img.kancloud.cn/81/51/815143716e6f9e10878a5e73f3416741_780x357.png) 為了搞清楚最后構建成功的文件在哪里。我就加上了。 他每次遠程后會在桌面產生一個delete 開頭的文件。構建后job 就卡住,刪除文件就會繼續job 測試生成的dll。 ![](https://img.kancloud.cn/88/d5/88d5373089f4483897332c6cd7b418db_994x394.png) 加上后 init 會顯示機器遠程ip:端口 用戶名都固定的,密碼是 ![](https://img.kancloud.cn/6a/b0/6ab01aeca33e936c5eaaf8fec07f4237_540x178.png) 自己配的。 最終研究發現 他會在被遠程的電腦上建一個project 里clone 除php-src 源碼,然后將源碼 拉取到ext 目錄里,構建的dll 在build目錄下。 ![](https://img.kancloud.cn/f8/4d/f84dd3a68cb113f556301ddf8f4824de_779x643.png) 然而,我第一次成功的名字都很奇怪,只有源碼的zip。 ![](https://img.kancloud.cn/17/10/1710a73923c95cd3ea7684892eaa7158_1201x480.png) 這個得細看文檔。 ![](https://img.kancloud.cn/79/65/7965d9f6b2b4266ac187880145dd693e_858x799.png) ~~~ release: php_tideways_xhprof-v$(APPVEYOR_BUILD_VERSION) ~~~ 當時yaml 是這么寫的,v 因為沒有tag name 他只好以分支名來作為tag,5是第5次發布。 后來既然能生成了,我干脆改了。 ![](https://img.kancloud.cn/95/fe/95fecd39ec5dc59ec2d1314288716db9_405x134.png) 固定了一個名字 ![](https://img.kancloud.cn/f7/f0/f7f08754006469f474c888ba90aa001e_590x63.png) 補了一個tag name 的環境變量。結合架構,php版本。 這個源碼的壓縮包怎么來的。 ![](https://img.kancloud.cn/d8/ed/d8ed01cc6aeabb3aedcbb9030611421b_1779x868.png) build_task.cmd 里有 7zip 壓縮ext/擴展源碼為壓縮包,最后上傳。 我依葫蘆畫瓢,補上了 build下dll 壓縮 為dll.zip,并上傳至產物。 ![](https://img.kancloud.cn/39/fc/39fc662f00e20907daa0779b7f4860ca_1041x177.png) ![](https://img.kancloud.cn/5c/a6/5ca65d43b0e9f34b09c3cb2988c49f5a_979x368.png) 最終我研究了半天 上傳至github 只需要把deploy 下的 artifacts 或 artifacts 刪除用默認的,保證 build_cmd里有 ~~~ 7z a php_tideways_xhprof-%APPVEYOR_REPO_TAG_NAME%-%PHP_REL%-%PHP_BUILD_CRT%!ZTS_IN_FILENAME!!ARCH_IN_FILENAME!.zip %APPVEYOR_BUILD_FOLDER%\php_tideways_xhprof-%PHP_REL%-!ZTS_SHORT!-%PHP_BUILD_CRT%-%PHP_SDK_ARCH%\* appveyor PushArtifact php_tideways_xhprof-%APPVEYOR_REPO_TAG_NAME%-%PHP_REL%-%PHP_BUILD_CRT%!ZTS_IN_FILENAME!!ARCH_IN_FILENAME!.zip -FileName php_tideways_xhprof-%APPVEYOR_REPO_TAG_NAME%-%PHP_REL%-%PHP_BUILD_CRT%!ZTS_IN_FILENAME!!ARCH_IN_FILENAME!.zip ~~~ 類似這兩行代碼 就是將build\擴展名目錄壓縮為壓縮包,然后上傳至本地ci 的產物里。所有產物都會被上傳作為release的附件。壓縮包內容類似 ![](https://img.kancloud.cn/fb/14/fb14c2846377a5571c9938d8a5fa5e66_989x119.png) ![](https://img.kancloud.cn/0a/cb/0acb6313d47644ac85bd964f2648fd8c_966x448.png) 剩下的一個方向是,這個構建用的別人電腦,能否自己電腦用于編譯? 答案是可以的。 ![](https://img.kancloud.cn/20/47/20473956619a57f2944ae81f42030f8e_1034x435.png) bYOC 點了 新增電腦,![](https://img.kancloud.cn/52/5e/525e8560f1c64d845999a57aade295ae_777x474.png) windows 后按照要求在家里電腦執行就行。 PS> 坑很多,需要自己嘗試。 之前我那個init 遠程腳本沒刪,導致我電腦被創建了賬戶,關閉的防火墻又加了N多規則,本地github 連不通之類的。 很麻煩。 這個ci server 也可以局域網服務器 本地部署。 反正,折騰來折騰去半天,大部分配置、環境、網絡問題。 總算解決了,windows dll生成難的問題。 ![](https://img.kancloud.cn/7a/b7/7ab78ed7b436847477f4f0a2c3fd4d23_1867x942.png) ![](https://img.kancloud.cn/e5/99/e5997b6d690073d970384ca1ff9afae0_1849x920.png) 貼兩張 php-monitor 成功后的圖 互勉。 成功也是各種問題,monitor 用的db illuminate 和tp env collection 沖突啊。項目7 monitor 8 之類的。也想過這種性能數據 應該只上報,監控平臺應該獨立出來。可他實現接入的是通過append php 源文件來開啟的。兩個項目雜交。 一地雞毛。tidyawyes 4.17.5 后又不支持sql了。你看到的sql 是我本地項目看源碼模擬的 ![](https://img.kancloud.cn/5e/9a/5e9a2c1e660bc9f011d4df7ab52dac71_842x755.png)。 結果也不是span 那種樣式。tp trace默日可以取到sql 執行時間的。就是函數耗時不知道。 不禁讓我想到 如果ui 層做成 headless ui 多好。 擴展只采集上報。當然pecl 擴展以后都是composer包了,無非性能問題。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看