<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>

                # PHP-FPM過渡常駐內存 使用php開發的程序員大多數開發的都是web或者api接口,要么就是調用java的后端服務實現對外公開接口服務,這些開發大多數采用nginx+php-fpm模式來開發。 大多數的php開發者都沒有常駐內存的概念,畢竟都是大多數都是基于fpm模式來進行開發,很多工作fpm都幫我們做好管理好了,php的開發者只需要管好自己的業務邏輯代碼就已經足夠了。 ### 常駐內存和php-fpm模式有什么區別? 注意|常駐內存|php-fpm -|-|- 變量|不釋放|自動釋放 對象|只new一次|每次請求都需要重新new 單例|在初始化階段把對象存到內存|每個請求重建創建和銷毀對象 ### 在使用常駐內存框架需要注意什么? * 內存釋放 * 數據污染 * 資源釋放 * 靜態變量保存的對象不會被釋放,需要手動管理 * 禁止使用exit和die * 禁止使用sleep時間長的函數,防止導致Worker進程退出 * 不同Worker進程創建的對象和連接是不能互通的,創建連接池需要注意 * 定義公共函數的時候要使用 function_exists 判斷函數是否存在,否則會提示重名 * 類引入文件需要使用 include_once 或者 require_once 否則會提示類名重復 * 修改代碼需要重啟服務才能生效 * echo、print_r、var_dump不會輸出到瀏覽器 * 不能像fpm一樣使用$_GET、$_POST、$_REQUEST、$_SESSION、$_COOKIE、$_SERVER等$_開頭的變量。 ### 數據污染問題演示 ```php <?php Swoole\Runtime::enableCoroutine(true); $_array = []; $http = new swoole_http_server("127.0.0.1", 9501); $http->set(['worker_num'=>1]); $http->on("start", function ($server) { }); $http->on("request", function ($request, $response) { global $_array; if ($request->server['request_uri'] == '/a') { echo "---------------a請求開始----------------\n"; print_r($_array); echo "---------------a請求開始----------------\n"; $_array['key'] = 'My Name is php'; co::sleep(1); echo "---------------a請求修改----------------\n"; print_r($_array); echo "---------------a請求修改----------------\n"; $response->end($_array['key']); } else { echo "---------------其他請求開始----------------\n"; print_r($_array); echo "---------------其他請求開始----------------\n"; $_array['key'] = 'My name is Sunny'; echo "---------------其他請求修改----------------\n"; print_r($_array); echo "---------------其他請求修改----------------\n"; $response->end(); } }); $http->start(); ```
                  <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>

                              哎呀哎呀视频在线观看