SlideShare uma empresa Scribd logo
1 de 25
Mágikus Magento
 Bevezeté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 = acsjani@gmail.com;
    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        ●   OSL v3.0
● Magento Support

● Private sales
                            ●   Magento forums
● Több store                ●   Alap funkciók
● Store staging / merging

● Gift card
                            ●   0 USD / év
● Store credit (reward)

● Store szintű ACL

● Admin log

● SOLR integráció

● 14 420 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ér
Modul neve
Blokkok
Kontrollerek
Config xml fileok helye
View helper osztályok
Model osztályok
Db migrációs upgrade
szkriptek helye
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 model
Mage_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 :)

Mais conteúdo relacionado

Semelhante a Mágikus Magento - Bevezetés a Magento világába

Grid Underground projekt
Grid Underground projektGrid Underground projekt
Grid Underground projektFerenc Szalai
 
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenKrisztián Gyula Tóth
 
Mi a baj a Drupaloddal
Mi a baj a DrupaloddalMi a baj a Drupaloddal
Mi a baj a Drupaloddalthesnufkin
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Attila Balogh-Biró
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Attila Balogh-Biró
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxSzabolcs Gulyás
 
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögből
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögbőlPOZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögből
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögbőlPOZITEAM
 
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokonCross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokoneRise
 
Closures In Java Script
Closures In Java ScriptClosures In Java Script
Closures In Java Scriptustak
 
Closures In JavaScript
Closures In JavaScriptClosures In JavaScript
Closures In JavaScriptustak
 
Tóth Lajos - Személyes élmények az ITIL bevezetésével
Tóth Lajos - Személyes élmények az ITIL bevezetésévelTóth Lajos - Személyes élmények az ITIL bevezetésével
Tóth Lajos - Személyes élmények az ITIL bevezetésévelInformatikai Intézet
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanPal Vojacsek
 
GCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokGCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokMárton Kodok
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztésOpen Academy
 
1 java megismerese
1 java megismerese1 java megismerese
1 java megismeresebalazs85
 
Átállás joomla 2.5 joomla 3.3
Átállás joomla 2.5   joomla 3.3Átállás joomla 2.5   joomla 3.3
Átállás joomla 2.5 joomla 3.3Tamas Rigo
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaFerenc Kovács
 
Funkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálássalFunkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálássalGergő Hencz
 

Semelhante a Mágikus Magento - Bevezetés a Magento világába (20)

Grid Underground projekt
Grid Underground projektGrid Underground projekt
Grid Underground projekt
 
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
 
SimpleXpense-prezi
SimpleXpense-preziSimpleXpense-prezi
SimpleXpense-prezi
 
Mi a baj a Drupaloddal
Mi a baj a DrupaloddalMi a baj a Drupaloddal
Mi a baj a Drupaloddal
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (
 
Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (Enterprise java evolució, avagy java ee (
Enterprise java evolució, avagy java ee (
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
 
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögből
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögbőlPOZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögből
POZITEAM Bővített Műhely Tudásbázison alapuló együttműködés Geoview szemszögből
 
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokonCross Platform mobil app fejlesztés HTML5 JavaScript alapokon
Cross Platform mobil app fejlesztés HTML5 JavaScript alapokon
 
Closures In Java Script
Closures In Java ScriptClosures In Java Script
Closures In Java Script
 
Closures In JavaScript
Closures In JavaScriptClosures In JavaScript
Closures In JavaScript
 
Tóth Lajos - Személyes élmények az ITIL bevezetésével
Tóth Lajos - Személyes élmények az ITIL bevezetésévelTóth Lajos - Személyes élmények az ITIL bevezetésével
Tóth Lajos - Személyes élmények az ITIL bevezetésével
 
Fejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorbanFejlesztési kihívások a pénzügyi szektorban
Fejlesztési kihívások a pénzügyi szektorban
 
GCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokGCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatások
 
Forum BPM
Forum BPMForum BPM
Forum BPM
 
Android fejlesztés
Android fejlesztésAndroid fejlesztés
Android fejlesztés
 
1 java megismerese
1 java megismerese1 java megismerese
1 java megismerese
 
Átállás joomla 2.5 joomla 3.3
Átállás joomla 2.5   joomla 3.3Átállás joomla 2.5   joomla 3.3
Átállás joomla 2.5 joomla 3.3
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálása
 
Funkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálássalFunkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálással
 

Mágikus Magento - Bevezetés a Magento világába

  • 1. Mágikus Magento Bevezetés a Magento világába Ács János
  • 2. class Me { public $myName = “Ács János”; public $myJob = “Software engineer @ Inviqa”; public $myTwitter = @acsjani; public $myMail = acsjani@gmail.com; public function getProjectsIveWorkedOn() { return array( 'acnestudios.com', 'dreams.co.uk', 'smythson.com' ); } }
  • 3. 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
  • 4. Enterprise vs Community ● Commercial license ● OSL v3.0 ● Magento Support ● Private sales ● Magento forums ● Több store ● Alap funkciók ● Store staging / merging ● Gift card ● 0 USD / év ● Store credit (reward) ● Store szintű ACL ● Admin log ● SOLR integráció ● 14 420 USD / év
  • 5. 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
  • 6. 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.
  • 7. 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
  • 8.
  • 9.
  • 10. Magento alap modulok Saját modulok helye Modul névtér Modul neve Blokkok Kontrollerek Config xml fileok helye View helper osztályok Model osztályok Db migrációs upgrade szkriptek helye
  • 11. 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');
  • 12. Mage model Mage_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
  • 19. 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...
  • 20. 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
  • 21.
  • 22. 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
  • 23. ?

Notas do Editor

  1. S SRP Single responsibility principle an object should have only a single responsibility. O OCP Open/closed principle “ software entities … should be open for extension, but closed for modification”. L LSP Liskov substitution principle “ objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”. See also design by contract. I ISP Interface segregation principle “ many client-specific interfaces are better than one general-purpose interface.”[5] D DIP Dependency inversion principle one should “Depend upon Abstractions. Do not depend upon concretions.”[5] Dependency injection is one method of following this principle. (Rigidity, Fragility, Immobility, Viscosity)