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

                # 目錄結構 ![](https://box.kancloud.cn/c276f3bbc8432f885816e217cb13495d_342x1390.png) 可以看到,M2的目錄挺多的。 我們依次來講解下, > 我這里截取的是github里的源代碼,核心代碼跟composer和官網下載的源碼包的存放路徑不一樣。 > 如果是github下載的,那么m2的核心源代碼就在`app/code/Magento`里。 > 如果是composer安裝或者官網下載的源碼包,那么m2的核心源代碼就在`vendor/magento`里。 > 其他的都是一樣的 **app** 毫無疑問,app目錄就是存放的網站源代碼。 我們的插件/主題/js/css/等等都放在這個目錄里。 **bin** 這是M2提供的命令行工具,比如最常用的 ~~~ php bin/magento ~~~ 我們之前就用這個工具來自動安裝m2了。 **dev** M2的自動化功能測試和一些其他開發人員工具,這個我們普通用戶一般用不到。 m2的官方開發者會用到。 一般用不到,不管他就行。 **generated** 這個比較特殊,在M2里可以定義一些虛擬類。 這些類是自動生成的,會放在generated目錄里。 相當于php代碼緩存。 如果你有修改php的構造函數`function __construct()`里的代碼,就要`rm generated/* -rf`,不然會出現找不到類或者其他奇怪的錯誤。 **lib** 這里放的是m2自帶的公用js/jquery插件和字體。 一般用不到,不管他就行。 **phpserver** 這里放的是php內置的web服務器。 用來代替瀏覽器,直接命令行里打開網站。 一般用不到,不管他就行。 **pub** 這里存放的是圖片文件(比如產品圖片) 以及生成的靜態緩存文件. 我們會經常用到 **setup** 一看就知道是安裝目錄,沒什么好說的。 **var** 這里存放的是cache以及page cahce緩存文件。 以及log,report,export文件等。 我們會經常用到 **vendor** 這里存放的是第三方php組件。根據composer.json 文件生成的。 也就是composer install后下載安裝的第三方php組件。 如果是composer安裝或者官網下載的源碼包,那么m2的核心源代碼就在`vendor/magento`里, 這樣的話我們以后在開發過程中,會經常調試`vendor/magento`里的核心代碼。 **.htaccess** 這個是apache服務器里的配置文件 如果你用的是apache服務的話 會用到這個文件 **composer.json** 這里就是m2依賴的各種庫文件。 composer install 就是讀取的這個文件。 **index.php** 毫無疑問,這是入口文件 > 注意: M2的默認nginx配置的入口文件是在`pub/index.php`里,是為了安全,不暴露`app/`文件夾。 **nginx.conf.sample** 這是nginx下,m2官方推薦的配置文件。 如果你用的是nginx服務的話,會用到這個文件 基本上就這些了。 **現在我們重點講解下app,pub這2個目錄下面的內容。 因為我們開發中 基本上就是跟這2個目錄打交道。** # 重點 ## app ![](https://box.kancloud.cn/364170ae5a8db19c6ac10c8de5e547ce_256x396.png) ### code 插件放這個目錄,包括Magento核心代碼。 你安裝后 會發現已存在code/Magento目錄。 當然以后裝第三方插件或者自己寫的插件 都放在code下面 我們在第四章會手把手教你寫插件。現在就賣個關子。 ### design 主題放這個目錄,包括前后臺主題。 ![](https://box.kancloud.cn/ce6508167a07572a2530bda4a1ea3a1e_468x162.png) adminhtml/Magento/backend是默認后臺主題 frontend/Magento 是默認前臺主題 我們一般不需要改后臺主題。 我們主要是改前臺主題,但是不要直接改frontend/Magento默認主題。 你最好自己新建一個主題,在自己的主題里修改。 我們在第三章會手把手教你寫主題,重寫默認主題代碼。現在就賣個關子。 ### etc 這里是m2系統配置文件,不需要動它。 ### i18n 這是m2的語言包存放目錄。 你安裝的第三方語言包都會放在這里 ## pub ![](https://box.kancloud.cn/6ea8f0b96db4729f8501a4b0d1922be7_372x770.png) 這里面有個`index.php`,這個跟項目根目錄下的`index.php`是一樣的。 自帶的`nginx.conf.sample`是把`pub/index.php`設置成入口路徑。 當然你也可以把入口路徑改成`項目根目錄/index.php`,也沒問題,不建議這樣做,因為暴露了`app/`目錄,不安全。 一般是讀取`pub/`文件夾下`deploy`生成的文件。保證了`app/`目錄的安全性。 ### errors 這里放的是一些404或者503錯誤頁面。 不需要動它 ### media 這里放的是分類圖片/產品圖片/下載文件/其他后臺上傳的圖片或者文件, 不需要動它 ### static 這個就非常重要了,你deploy后就會生成網站靜態文件到這里。 ![](https://box.kancloud.cn/4cb9aad1978851868f74fc4c888adecd_450x252.png) 他會生成前后臺的靜態文件。 包括phtml(模版文件)/js/css等等,也就是把所有插件(code目錄里的)里的代碼都生成靜態文件。 所以,在開啟緩存的情況下,前臺都是讀取這里的js/css/模版。 ![](https://box.kancloud.cn/4f3858b264e0d5c0f0221cd9b9b50bf4_2240x738.png) 因此,在開啟緩存的情況下,調試模版/js/css代碼的時候,要注意下,不能直接改code,design里的源代碼,改了后會不生效,直接改static下面的文件就行。 因為它生成的目錄結構 跟插件的目錄結構是一樣的。 現在非常流行deploy 生成全靜態文件。比如hexo 是把md文件都deploy成靜態html。 你也許會覺得這樣的話,調試代碼很麻煩,改個地方 還得deploy下 才能看到效果。 其實不然,你可以建2個版本的網站,一個是開發版,一個是線上版。 開發功能的時候 只在開發版里開發調試,把緩存都禁用 ,調完測試完后,就把代碼推到線上去。 線上的再接收,然后deploy生成靜態文件部署。 ## 核心文件介紹 **注意: 如果是用composer安裝的話,核心文件在`vendor/magento`里。 如果是用github下載安裝的話,核心文件在`app/code/Magento`里。** 請自己確認是用哪種方式安裝的,別到時候找不到地方怪教程不對。 `app/code/Magento`里的: ![](https://box.kancloud.cn/4642a308d6bb01387864fd442bb8220f_1682x724.png) `vendor/magento`里的: ![](https://box.kancloud.cn/48ffc40f28b67245a0b914340168bffa_1940x960.png) 可以看到,M2的核心源代碼就這些,相當于是核心擴展。 版本升級的時候 也是自動更新這里的代碼。 看起來很多,因為m2功能太強大了,不多不行。 在這個入門課里 我們不需要那么燒腦 我們只需要掌握常用的幾個就行了。 以前臺為例,常用的主要有: 1. 分類和產品頁面 -> Catalog 2. customer用戶中心頁面 -> Customer 3. 購物車頁面 -> Checkout 4. 支付頁面 -> Checkout 5. 訂單頁面 -> Sales 6. 搜索頁面 -> Search 7. 首頁及cms頁面 -> Cms 8. 聯系我們頁面 -> Contact 然后product里的可配置產品和下載產品比較特殊,不在catalog里,是單獨擴展出來的。 1. 可配置產品 -> ConfigurableProduct 2. 下載產品 -> Downloadable 好了,掌握這些就足夠了,能解決80%的問題了。我們剛開始不需要一口吃個胖子。 有了這個概念后 你知道哪個頁面改該哪里的代碼了。 **必須注意一點: 不能直接改這里的核心源代碼,否則版本升級的時候會自動覆蓋 我們需要重寫這些文件。 php文件的話用plugin/preference/events等方式來重寫 phtml的話直接在自定義主題下面重寫。后面章節會講 xml的話也直接在自定義主題/插件下面的layout里重寫。后面章節會講**
                  <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>

                              哎呀哎呀视频在线观看