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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 創建應用 我們已經進行了大量的準備工作和前導閱讀,目的當然就是為了我們接下來要進行的應用開發。 創建應用需要如下幾個步驟。 ## 規劃項目位置 我們之前看到了關于[Vagrant虛擬機的安裝和如何進入虛擬機](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/01.03%20install%20ubuntu.html)。 讓我們先登錄到虛擬機,并轉到`/vagrant`目錄。我們之前講過,這個目錄實際上就是我們Windows宿主機中的某個目錄。 這個目錄將成為我們所有項目的存放位置。在該目錄下,各個項目有各自的項目目錄。我們將這個項目目錄稱為某個項目的根目錄。以后的教程中,如果再次提到這個“根目錄”,那就一定是指這個目錄。 ## 獲得Symfony的`installer` ~~~ sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony sudo chmod a+x /usr/local/bin/symfony ~~~ 注意:這么做是在`/usr/local/bin`下創建了一個可執行的`symfony`命令。我比較喜歡將這個命令放置在`/vagrant`目錄下。 ## 創建應用 假定我們在`/vagrant`目錄,現在用如下的命令創建我們的應用: ~~~ $ symfony new the_new_project_name ~~~ 請根據實際情況將`the_new_project_name`替換為更有意義的名字,在我們這本書中,我們用的項目名稱`symfony`。 > 注意:在我們虛擬機中,由于`/vagrant`這個目錄并不是實實在在的Linux系統中的目錄,而是一個Windows系統下映射過去的目錄,上面的命令有可能會執行出錯(取決于你使用的Vagrant版本)。此時,我們可以在對應的Windows目錄中進行如上操作。這樣生成的應用框架是可以在Linux中使用的。 或者,可以參考SF官方文檔中的[方法](http://symfony.com/doc/master/book/installation.html#creating-symfony-applications-without-the-installer),用Composer來創建項目。 這個命令將在`vagrant`目錄下創建一個`symfony`目錄(也就是我們的項目名字),并在該目錄下進行必要的設置,創建一個全新的Symfony應用框架。 現在我們進入`symfony`目錄,也就是“根目錄”中,按照之前“[Composer](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/02.04%20composer.html)”一章中的介紹下載`composer.phar`,并執行一次更新。 ## 目錄結構說明 一個空空如也的Symfony 3框架約莫有32M,這也是SF3被稱為重量級框架的原因。它的目錄結構如下: ![](https://box.kancloud.cn/e87779848417cb274dcbf85a2a169901_337x409.png) ### `app`目錄 這個目錄是整個框架的運行核心。一些重要的核心文件,如`autoload.php`,`AppKernel`等文件都在該目錄中。 它又包括幾個子目錄,也非常重要。 * `config`:這里存放應用所有的配置。在日后討論中,我們會慢慢接觸這些文件。 * `Resources`:這里可以存放應用級別的資源,如模板文件(在`views`子目錄下)。 ### `bin`目錄 * `console`:該文件是SF命令行界面,我們稍后在開發過程中會經常用到這個命令。 ### `src`目錄 用戶編寫的所有內容都在該目錄下,嚴格的說,是在`AppBundle`目錄下。根據代碼的用途,`AppBundle`目錄下又可以分為: * `Controller`:控制器,即MVC中的C。 * `Entity`:實體,即MVC中的M。 * `Repository`:倉庫,存放實體操作的代碼。 * `Resources\config`:存放當前應用包的配置,如路由,數據庫實體等。 * `Resources\views`:存放模板,即MVC中的V。 * `Tests`:存放單元測試和功能測試代碼。 在項目剛創建完成時,這些目錄(除了`Controller`)都不存在。我們在日后開發過程中,可以選擇生成。 ### `tests`目錄 此處存放所有的測試文件,包括單元測試和功能測試。 ### `var`目錄 該目錄中有三個子目錄。 * `cache`:存放SF編譯用戶代碼和系統代碼后的緩存。根據實際使用情況,又可能會有`prod`,`dev`和`test`子目錄,分別對應生產、開發、測試環境。 * `logs`:存放日志文件,如`dev.log`對應的是開發環境下的日志文件。 * `sessions`:存放PHP和SF運行時創建的對話信息。 ### `vendor`目錄 所有第三方的包和代碼存放在此處。一般情況下我們在此處進行操作。 ### `web`目錄 這個目錄是SF3應用開放給Web服務器的入口,也就是我們常規情況下訪問`http://www.somewhere.com`時,Web服務器所訪問的根目錄。請不要和我們之前說的“項目根目錄”混淆。 在這個目錄中,有SF3應用的入口文件:`app.php`(生產模式)和`app_dev.php`(開發模式)。在實際應用中,我們訪問的是`app.php`——當然,因為有重寫規則的存在和該目錄下`.htaccess`文件的配合,我們訪問一個SF應用時,不需要指明`app.php`,而可以直接用類似`http://www.somewhere.com/path/to/resource`這樣的方式。在開發時,我們更多的是使用`app_dev.php`,此時我們訪問的URI形如:`http://www.somewhere.com/app_dev.php/path/to/resource`。 ## 遠端調試 如果我們現在在Windows宿主機中訪問`http://symfony/app_dev.php`,那么我們會看到一個錯誤信息: > You are not allowed to access this file. Check app_dev.php for more information. 這是因為`app_dev.php`是個用在開發模式下的文件,缺省時開發環境是不對遠程主機開放的。 既然我們采用目前的Windows+Vagrant的開發方式,我們顯然必須進行遠程開發,所以需要修改一下`app.php`文件: 原來的文件中找到這一段: ~~~ // This check prevents access to debug front controllers that are deployed by accident to production servers. // Feel free to remove this, extend it, or make something more sophisticated. if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server') ) { header('HTTP/1.0 403 Forbidden'); exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); } ~~~ 將整個`if`段全部注釋掉。然后再次訪問,我們會看到如下的歡迎界面: ![](https://box.kancloud.cn/72862c19b3b57276c6b47244ccee5628_768x543.png) 看到這個界面,那么我們的SF應用創建就大功告成。接下來就是真正的開發過程了。 注意:經過修改的這個`app_dev.php`程序可千萬不要放到生產環境中,這會帶來巨大的安全風險。因此,我一般會將這個文件放入版本控制中的被忽略文件列表中(見下一節[建立版本控制](https://taylorr.gitbooks.io/building-a-web-site-with-symfony/content/05.01%20git))。 不過在進入開發之前,我們先要進行代碼倉庫的管理。
                  <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>

                              哎呀哎呀视频在线观看