In welke taal is Magento geschreven?
Magento is geschreven in PHP en maakt gebruik van elementen van het Zend Framework en het MVC-architectuurpatroon (model-view-controller). Het heeft een zeer modulaire structuur die naast PHP afhankelijk is van meerdere open-sourcetechnologieën. Webservers Code Database Frontend Zoeken HTTP-accelerator Cache-opslag Optionele componenten Apache, Nginx PHP, Composer (voor afhankelijkheidsbeheer) MySQL, MySQL Percona jQuery, RequireJS, Knockout.js, HTML5, CSS3/Less Elasticsearch Varnish Redis RabbitMQ, Varnish
Magento-geschiedenis met behulp van PHP
De ontwikkeling van Magento begon in 2007 toen het aantal PHP-frameworks op de markt beperkt was. De meest opvallende waren destijds CakePHP, CodeIgniter, Zend Framework en Symfony 1. CakePHP en CodeIgniter waren vanwege hun eenvoud alleen geschikt voor snelle applicatie-ontwikkeling, en Symfony 1 was redelijk nieuw en lang niet zo geavanceerd als nu. Het Zend Framework was het voorkeursframework voor het ontwikkelen van applicaties op ondernemingsniveau. Gesteund door de makers van PHP, voldeed het aan alle essentiële vereisten van een ideaal raamwerk, zoals beveiliging, prestaties en uitbreidbaarheid, en werd het daarom gebruikt tijdens de ontwikkeling. Het is vermeldenswaard dat Magento 1 is gebouwd met behulp van componenten van het Zend Framework en niet volledig een op Zend gebaseerde applicatie was. Zelfs toen de ontwikkeling van Magento 2 in november 2011 begon, was Zend Framework 1 het meest stabiele aanbod op de markt. De eerste stabiele versie van Zend Framework 2 kwam pas in 2012 uit, toen Magento al in ontwikkeling was. Daarom bevat Magento 2 componenten van zowel raamwerken als andere raamwerken zoals Laminas en Symfony in plaats van één enkel raamwerk. De ontwikkeling van Magento 2 werd in 2015 afgerond. Hoewel het oorspronkelijke plan was om bestaande achterwaartse compatibiliteits- en prestatieproblemen aan te pakken, groeide de projectomvang in de loop der jaren. Het ontwikkelingsteam besloot hun eigen raamwerk, het Magento Framework genaamd, te bouwen en te implementeren in plaats van bestaande, volwassen raamwerken te gebruiken, zoals Symfony 2. Vanaf Magento 2.3.5 is Adobe begonnen met het porten van niet-ondersteunde componenten van het Zend Framework naar Laminas, een voortzetting van hetzelfde raamwerk.
Gerelateerde dienst Wilt u migreren naar Magento 2? Van geautomatiseerde databasemigratie tot herontwikkeling van functionaliteit en handmatige oplossing van compatibiliteitsproblemen, Staylime neemt alle problemen op zich die gepaard gaan met een upgrade naar Magento 2. Meer informatie
Het Magento-framework
Het Magento Framework, niet te verwarren met het Zend Framework, is voornamelijk een PHP-softwarecomponent die de interactie bepaalt van applicatiecomponenten zoals routing, indexering, caching, afhandeling van uitzonderingen en aanvraagstroom. Het is georganiseerd in logische groepen, bibliotheken genaamd, en vermindert de moeite van het maken van extensies die bedrijfslogica bevatten, waardoor de afhankelijkheden worden verminderd en de Magento-code modulairer wordt. Het Magento Framework verwerkt bewerkingen zoals HTTP-protocollen, het weergeven van inhoud en extensie-interacties met de database en het bestandssysteem, waardoor het essentieel is voor het functioneren van alle extensies. Daarom raadt Adobe ontwikkelaars niet aan de raamwerkbestanden te wijzigen. In plaats daarvan zouden ze een beroep moeten doen op hun bibliotheken om klassen en interfaces te erven die in het raamwerk zijn gedefinieerd bij het maken van Magento-extensies. Binnen de hoofdmap van Magento is het raamwerk als volgt gestructureerd: vendor/ ../magento ../framework lib/ ../internal ../LinLibertineFont ../web /vendor/magento/framework bevat uitsluitend bibliotheken met PHP-code en het applicatie-ingangspunt dat verantwoordelijk is voor het routeren van verzoeken naar modules. /lib/internal bevat zowel PHP- als niet-PHP-frameworkbibliotheken, inclusief JavaScript en CSS/Less. /lib/web/ bevat JavaScript- en CSS/Less-bestanden die toegankelijk zijn via een webbrowser, terwijl de bestanden in de map /lib/internal PHP-code bevatten die niet toegankelijk is voor een browser.
Magento-uitbreidbaarheid
Het ontwikkelingsteam van Magento heeft zich altijd gericht op het garanderen van uitbreidbaarheid in alle aspecten van de ontwikkeling. De kernfunctionaliteit van het platform is verpakt in afzonderlijke modules om maatwerk mogelijk te maken zonder de kerncode te vervangen. Door de code uit te breiden in plaats van te vervangen, stelt Magento ontwikkelaars in staat de integriteit van de code van de applicatie te behouden, terwijl winkeleigenaren online winkels met onbeperkte functionaliteit kunnen bouwen. Magento vertrouwt op bekende architecturale en programmeerstructuren in PHP vanwege zijn uitbreidbaarheid. Dit heeft Magento geholpen er een divers product-ecosysteem omheen te bouwen, bestaande uit ontwikkelaars en verkopers over de hele wereld. De officiële Magento Marketplace biedt meer dan 3700 thema’s en extensies van derden, en dat vertegenwoordigt slechts een klein deel van hun gehele productecosysteem. De producten op hun marktplaats worden ondersteund door een rigoureus extensiekwaliteitsprogramma om ervoor te zorgen dat elk thema en elke extensie grondig wordt geïnspecteerd op hoogwaardige coderingsnormen en beveiliging voordat ze op de markt worden toegelaten.
Coderingsnormen
Omdat het een platform is dat is gebouwd om grootschalige ondernemingen te ondersteunen, volgt het kernontwikkelingsteam van Magento de Magento-coderingsstandaard en raadt het ontwikkelaars die met het platform werken aan deze ook te volgen. Ze raden ontwikkelaars ook aan tools als PHP_CodeSniffer te gebruiken om de naleving van de code te controleren terwijl ze met het platform werken. De Magento-coderingsstandaarden behandelen de volgende aspecten: Gebruik van onveilige functies. Syntaxis van PHP-code. Naleving van PHP Standards Recommendations (PSR). Onjuiste afhandeling van uitzonderingen. Naamgevingsconventies. Ongeëscapede uitvoer. Gebruik van verouderde PHP-functies. Lege codeblokken en vele andere PHP- en Magento-gerelateerde codeproblemen. Hun volledige set regels is te vinden in het bestand ruleset.xml van de Magento-coderingsstandaard. Magento's gebruik van PHP biedt het de flexibiliteit en schaalbaarheid die zijn gebruikers bewonderen. Een grondig begrip van het raamwerk, de coderingsstandaarden en PHP stelt ontwikkelaars in staat het potentieel voor e-commercebeheer te maximaliseren.