Zend Components Used by Magento 2

Architecturemagento2zend-framework

Magento2 now using zend framewok 1 ,zend framework 2 ,symfony etc.

I want to know what are the components taken from zend framewok 1 and components taken from zend framewok 2.

For example:

  1. Zend_Db (from zend 1)
  2. Zend_Json (from zend 2)
  3. Zend_mvc(from Zend 1)

etc.

And also how much percent from each framework(not exactly..i know its difficult)

for example:

  • zend framewok 1: 45 %
  • zend framewok 2: 25 %
  • symfony: 30%

update:through composer i cant identify which component using magento.

for example:
symfony/config or zend/config ( both components existed in composer)

Best Answer

Here's a quick breakdown of the components:

All those are from Zend Framework 2:

    "zendframework/zend-stdlib": "~2.4.6",
    "zendframework/zend-code": "~2.4.6",
    "zendframework/zend-server": "~2.4.6",
    "zendframework/zend-soap": "~2.4.6",
    "zendframework/zend-uri": "~2.4.6",
    "zendframework/zend-validator": "~2.4.6",
    "zendframework/zend-crypt": "~2.4.6",
    "zendframework/zend-console": "~2.4.6",
    "zendframework/zend-modulemanager": "~2.4.6",
    "zendframework/zend-mvc": "~2.4.6",
    "zendframework/zend-text": "~2.4.6",
    "zendframework/zend-i18n": "~2.4.6",
    "zendframework/zend-eventmanager": "~2.4.6",
    "zendframework/zend-view": "~2.4.6",
    "zendframework/zend-servicemanager": "~2.4.6",
    "zendframework/zend-json": "~2.4.6",
    "zendframework/zend-config": "~2.4.6",
    "zendframework/zend-form": "~2.4.6",
    "zendframework/zend-di": "~2.4.6",
    "zendframework/zend-serializer": "~2.4.6",
    "zendframework/zend-log": "~2.4.6",
    "zendframework/zend-http": "~2.4.6",

This one is a fork of Zend Framework 1.12.16:

    "magento/zendframework1": "1.12.16",

The Symfony components are:

    "symfony/console": "~2.3 <2.7",
    "symfony/event-dispatcher": "~2.1",
    "symfony/process": "~2.1",
    "symfony/phpunit-bridge": "~2.7",
    "symfony/dependency-injection": "~2.6|~3.0.0",
    "symfony/expression-language": "~2.6|~3.0.0",
    "symfony/config": "~2.0,>=2.0.5|~3.0.0",
    "symfony/stopwatch": "~2.3|~3.0.0",
    "symfony/filesystem": "~2.3|~3.0.0"
    "symfony/yaml": "~2.1|~3.0.0",

As David said, only the Console component is used in app/code/Magento the other components are used internally under lib/internal/Magento/Framework .

Regarding the percentage, a simple count of the occurences in Magento 2.1-rc1 gives you (excluding comments and vendor folder):

  • ~1400 references to Zend_ which is from ZF1
  • ~800 references to Zend\ which is from ZF2
  • ~850 references to Symfony
Related Topic