Tutorials Magento 003: cấu trúc trong magento

Trong Tut magento 002 mình đã giúp anh chị cài đặt magento trên localhost và bữa nay mình sẽ giới thiệu cho các bạn kiến trúc bên trong của mã nguồn mở này.

Đối với những người mới mày mò thì magento thực sự rất phức tạp, nó là sự kết hợp tuyệt vời của Zend Framework với kiến trúc MVC (Model – View – Controller).

– Zend Framework: một framework được build bằng ngôn ngữ PHP, nó là một trong nhiều framework mạnh nhất và được rất nhiều người dùng hiện nay bởi có quá nhiều tính năng ưu việt mà những framework khác không có. Đến với Zend, chúng ta rất dễ mở rộng các lớp xử lý của mình, nhúng những thư viện khác mà việc config không quá khó khăn, phức tạp.

– Mô hình MVC: được hiểu nôm na là một mô hình thiết kế được dùng trong kỹ thuật xây dựng phần mềm. Nó giúp cho các developer tách phần mềm ra 3 thành phần khác biệt Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và tự do với các thành phần khác.

+ Model: là các lớp cung cấp dữ liệu, dịch vụ liên quan đến dữ liệu và business logic. Các lớp này làm việc trực tiếp với dữ liệu và cung cấp dữ liệu cho các thành phần khác. Trong magento, các lớp này được chứa trong thư mục Model.

+ View: là các lớp định nghĩa cách thức trình bày dữ liệu (không cập nhật dữ liệu). Các lớp này được chứa trong thư mục Block, template của module.

+ Controller: là các lớp điều khiển luồng ứng dụng, nó tiếp nhận đầu vào là các yêu cầu của người dùng thông qua HTTP header, chuyển tiếp các yêu cầu đó đến các lớp phụ trách trực tiếp xử lý yêu cầu. Từ đường link, router sẽ tìm đến Controller điều khiển đường link đó. Trong Magento, các lớp này được đặt trong thư mục controllers.

Một số sản phẩm Magento của chúng tôi :

- magento multi vendor

- one step checkout magento

- html5 product designer

1. Cấu trúc thư mục trong magento

/ app / etc – thư mục chứa những config global

/ app / code – chứa những modules ( models, controllers, helpers, blocks… )

/ app / code / core – những module do team magento phát triển

/ app / code / community – những module do cộng đồng phát triển

/ app / code / local – những module do những nhà phát triển khác

/ app / code / core / Mage – namespace default của magento

/ app / code / core / Mage / Module – module root

/ app / code / core / Mage / Module / etc – module configuration

/ app / code / core / Mage / Module / controllers – controllers module

/ app / code / core / Mage / Module / Block – Block logic classes

/ app / code / core / Mage / Module / Model – Object Models provided by module

/ app / code / core / Mage / Module / Model / Mysql4 – Resource Models provided by module

/ app / code / core / Mage / Module / sql – sql installation and upgrade files between module versions

/ app / code / core / Mage / Module / sql / resource / – resource model specific upgrades

/ app / code / core / Mage / Module / sql / resource / type-action-versions.(sql|php) – resource update files. example: mysql4-upgrade-0.6.23-0.6.25.sql

/ app / design – is location of design packages (layouts, templates, translations)

/ app / design / frontend – frontend design

/ app / design / adminhtml – HTML admin panel design

/ app / design / area / package / theme – theme customizations

/ app / design / area / package / theme / layout – .xml files that define block structure for different cases in website flow

/ app / design / area / package / theme / template – .phtml (html with php tags) templates

/ app / design / area / package / theme / locale – Zend_Translate compatible translation files for package/theme

/ app / locale – locale files

/ app / locale / locale (en_US) – Zend_Translate compatible translation files for modules

/ skin / area / package / theme / – is where design package css and images are

/ lib – are libraries such as Zend and Varien

/ js – are javascripts smile

/ media – uploaded files (product images, pdf documents, etc)

/ tests – Unit tests (not done yet)

/ var – temporary files

/ includes – contains config.php

2. Cấu trúc module

Một magento 2 module creator bao gồm có các phần chính sau:

+ Block: Là nơi dùng để load dữ liệu, điều chỉnh dữ liệu từ database trước khi cho hiển thị dữ liệu ra template.

+ Controller: Nhận yêu cầu từ phía người dùng từ http sau đó sẽ chuyển yêu cầu tới các lớp xử lý.

+ Etc: bao gồm các file xml dùng để config cho module. Tùy theo mỗi module mà có những file xml khác nhau.
– Config.xml: dùng để khai báo model,helper,block…

– System.xml: config tạo ra 1 số field, hiển thị trên menu bên trái khi click vào system\config.

– Adminhtml.xml: dùng để config hiển thị trên menu chính của phần quản trị.

+ Helper: trong này dùng để viết các function được sử dụng ở nhiều nơi khác nhau trong hệ thống. Cách gọi 1 helper: Mage::helper('tenmodule/tenhelper')->helperTenfunction();

+ Model: Dùng để viết các câu lệnh truy vấn trực tiếp với cơ sở dữ liệu.

+ Sql: dùng để tạo bảng, cập nhật bảng dữ liệu, tương tác thay đổi dữ liệu…

* Kết luận: sau bài viết này các bạn đã có thể hình dung được một phần cấu trúc cơ bản của Magento, thư mục cũng như mô hình xây dựng lên magento. Bài viết vẫn còn nhiều thiếu sót mong được mọi người góp ý.

About Unknown

Unknown
"Mình là Phương Nguyễn, thâm niên 4 năm kinh nghiệm thiết kế website và làm marketing, tuy nhiên kể từ 1 năm trở lại đây mình không còn làm marketing nữa, và chỉ tập trung vào viết plugin và giao diện cho Wordpress, nếu các bạn thấy bài viết hay thì hãy chia sẻ cho những người khác cùng tham khảo, còn nếu muốn thiết kế website hoặc sửa web hay đặt một plugin có chức năng đặc biệt, hãy liên hệ ngay tới Phương"
Recommended Posts × +

0 nhận xét:

Đăng nhận xét

Video of the Day