<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 功能強大 支持多語言、二開方便! 廣告
                **MVC三個字母的含義: ![](https://box.kancloud.cn/932328a5d21efd3113d0c217eaf70a3a_690x273.png) M:Model 模型,負責數據庫操作。 V:View 視圖,負責調用Model調取數據,再調用模板,展示出最終效果。 C:Controller 控制器,程序的入口,決定改調用哪個View,并告訴View該做什么。 如此說來,程序的執行順序是C-V-M 或 C-M ,和MVC的名字正好相反。** 接上面的過程繼續學習,運行http://localhost:8000/config.php,symfony全檢查我們的php.ini的配置,我們安里面的提示進行修改,以達到安全高效的配置。 我們生成的blog目錄如下圖 ![](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.xxx.com時,Web服務器所訪問的根目錄。請不要和我們之前說的“項目根目錄”混淆。 在這個目錄中,有SF3應用的入口文件:app.php(生產模式)和app_dev.php(開發模式)。在實際應用中,我們訪問的是app.php——當然,因為有重寫規則的存在和該目錄下.htaccess文件的配合,我們訪問一個SF應用時,不需要指明app.php,而可以直接用類似http://www.xxx.com/path/to/resource這樣的方式。在開發時,我們更多的是使用app_dev.php,此時我們訪問的URI形如:http://www.xxx.com/app_dev.php/path/to/resource。 打開 app->config->parameters.yml 文件,里面是我們的數據庫及郵件發送配置 如下圖: ![](https://box.kancloud.cn/a3ffb9d263bda714622acd6511cae807_994x670.png) 上圖的resources目錄下的views是存文view層,即是視圖層,symfony用的是twig的模板,它有自己定義的語法。但最終會被解析成為php。 打開index.html.twig {% extends 'base.html.twig' %} 這一行表示這一個模板繼承了 base.html.twig 以下為base.html.twig代碼: ~~~ <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" /> </head> <body> {% block body %}{% endblock %} {% block javascripts %}{% endblock %} </body> </html> ~~~ 我們改一下index.html.twig * * * * * {% extends 'base.html.twig' %} {% block body %} study symfony body {% endblock %} {% block title %} study symfony title 部分 {% endblock %} {% block stylesheets %} <style> body { background: #F5F5F5; font: 18px/1.5 sans-serif; } h1, h2 { line-height: 1.2; margin: 0 0 .5em; } h1 { font-size: 36px; } h2 { font-size: 21px; margin-bottom: 1em; } p { margin: 0 0 1em 0; } a { color: #0000F0; } a:hover { text-decoration: none; } code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; } #wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; } #container { padding: 2em; } #welcome, #status { margin-bottom: 2em; } #welcome h1 span { display: block; font-size: 75%; } #icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; } #icon-book { display: none; } @media (min-width: 768px) { #wrapper { width: 80%; margin: 2em auto; } #icon-book { display: inline-block; } #status a, #next a { display: block; } @-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } .sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;} } </style> {% endblock %} * * * * * Twig也可以說是Symfony系列產品中的一個,它的開發者也是Fabien Potencier。 Symfony 3缺省安裝時也會安裝Twig。其官方站點是http://twig.sensiolabs.org/。 Twig非常輕量級,語法也十分簡明。簡單說來,它只有兩種語法: {{ say something }}表示的是一種輸出; {% control something %}表示的是一種控制。 它還支持模板的嵌入、擴展、繼承,以及一些所謂的過濾器(比如將一個日期型變量以某種格式輸出)。同時,用戶也可以在SF2中編寫自己的過濾器。 Twig采用obj.member值這樣的方式來訪問傳遞到模板中的變量的屬性、成員。所以,如果我們傳遞一個如下的變量到Twig模板中: $summary['bc']=100; $summary['wc']=10000; 在Twig模板中,我們就可以通過這樣的語法來訪問其成員: {{summary.bc}} {{summary.wc}} 注意:Twig中所有用到的變量、對象都必須顯式賦值。變量的定義可以在Twig內部進行,但更多的時候是應用通過控制器傳遞給模板的。 更多Twig的實際使用我們會在后續文章中講到。 {{XXX}}顯示什么 {% xxx%} 做什么 區別一下。 刷新 http://127.0.0.1:8000/ 如下效果: ![](https://box.kancloud.cn/f26917f61665d39b053453a0c0abab60_615x604.png) 創業一個controller AboutController 我們通過DefaultController 復制進行稍微修改 <?php namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; class AboutController extends Controller { /** * @Route("/about", name="About") */ public function indexAction(Request $request) { die('About controller'); // replace this example code with whatever you need return $this->render('default/index.html.twig', [ 'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR, ]); } } 注意: /** * @Route("/about", name="About") */ /about是路由 http://127.0.0.1:8000/about 看到運行效果
                  <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>

                              哎呀哎呀视频在线观看