mágikus magento - bevezetés a magento világába
TRANSCRIPT
Mágikus MagentoBevezetés a Magento világába
Ács János
class Me
{
public $myName = “Ács János”;
public $myJob = “Software engineer @ Inviqa”;
public $myTwitter = @acsjani;
public $myMail = [email protected];
public function getProjectsIveWorkedOn()
{
return array(
'acnestudios.com',
'dreams.co.uk',
'smythson.com'
);
}
}
Mi is az a Magento?
● Open Source
● eCommerce platform
● Zend framework (PHP) alapú
● Készítette: Varien (most Magento Inc)
● OOP, MVC, EAV
● Enterprice és Community edition
Enterprise vs Community
● Commercial license● Magento Support● Private sales● Több store● Store staging / merging● Gift card● Store credit (reward)● Store szintű ACL● Admin log● SOLR integráció● 14 420 USD / év
● OSL v3.0
● Magento forums
● Alap funkciók
● 0 USD / év
Na de fejlesztői szempontból?● MVC pici változtatásokkal, hozzáadott elemekkel
● EAV adatstruktúra a termékekhez és bármihez
● Event Listener pattern
● A modelleknél a Factory, Singleton, Registry,
Iterator, Object pool, Prototype, Lazy loading,
Service locator patterneket implementálták
● Konfiguráció alapú architektúra
● Működő és tesztelt order flow, termék modell,
cms és még sok más
MVC (Model View Contoller) bővítések
● Layout configuráció - Minden 'action'-höz xml tartozik amely leírja, mit kell megjeleníteni
● Blokkok (Block) - Ezek a model és a view közé ékelődött megjelenítést segítő elemek. Egy oldal mindig blokkokból épül fel, ezek a layout xmlben definiálhatók
● Rewrite rendszer - A Magento minden default osztálya kiterjeszthető és a rewrite segítségével sajátra cserélhető. A rewrite-ot az adott modul saját config xmljében definiálhatjuk.
EAV● Entity (entitás)
● Egy Magento adat elemet reprezentál, termékek (product), rendelések (order), kategóriák (category), felhasználók (customer)
● Attribute (attribútum)
● Egy entitás saját paramétereit reprezentálja, pl termék esetén: név, sku, méret, stb.
● Value (érték)
● Egy attribútum értékei, lehet integer, float, varchar, text, date
Magento alap modulok
Saját modulok helye
Modul névtérModul neve
Config xml fileok helye
Db migrációs upgrade szkriptek helye
View helper osztályok
Model osztályok
BlokkokKontrollerek
File szerkezet
● Kötött, minden előre meghatározott helyre kerül
● Osztály elnevezési konvenció
Szegedtech_Catalog_Model_Product_Type_Configurable
app/code/local/Szegedtech/Catalog/Model/Product/Type/Configurable.php
$configrableProduct =Mage::getModel('szegedtech_catalog/product_type_configurable');
Mage modelMage_Core_Model_Abstract vagy Varien_Object classok valamelyikét terjeszti ki, ha szükséges
Legtöbbször tartozik hozzá egy Resource model is, amely az adatbázissal valo kommunikációt végzi.
Létezését definiálni kell a config.xml -ben
Mage model config xml
Mage model
Event listeners
Event dispatch
…/Model/Observer.php
.../etc/config.xml
Checkout és Order Flow
Mit csinálunk mi pontosan?
A mi dolgunk a Magento testreszabása a kliens egyedi igénye szerint.
Ez magában foglalja a teljes skin készítést, az alapértelmezett funkciók módosítását, új modulok implementálását, third party modulok telepítését és módosítását, új
fizetési módok integrálását, stb...
Enterprise szintű webfejlesztés
Scrum metodológia (napi standup, sprintek, story pontok, retrospective)
Unit teszt készítése minden módosításhoz (https://github.com/inviqa/Mage-Test)
100% code coverage a cél :)
Continuous Integration alkalmazása a fejlesztés alatt napi buildekkel
Mess detector, Code sniffer alkalmazása
SOLID principle
Inviqa launch in Szeged
2013. március 7. (csütörtök) 18:00
IH (www.ihrendezvenykozpont.hu)
Előadások- The Magento Way, modul fejlesztés és demo (Molnár Zsolt)
- Continuous Integration, miért és hogyan? (Nagy Norbert)
- Get to know Inviqa better (Yair Spitzer)
kaja, sör, stb.
tinyurl.com/inviqaszeged
?
We are hiring!
http://inviqa.com/careers
Köszönöm a figyelmet :)