2015-12-29 4 views
0

Попытка установить образец модуля в Magento 2 от this. Ниже представлена ​​структура модуля app/code/NameSpace/Module/Magento 2 - Правильный способ установки модуля

module image

module.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> 
    <module name="Magentostudy_News" setup_version="0.0.1" schema_version="0.0.1"/> 
</config> 

composer.json

{ 
    "name": "magentostudy/module-news", 
    "description": "N/A", 
    "require": { 
     "php": "~5.5.0|~5.6.0|~7.0.0", 
     "magento/module-store": "100.0.0", 
     "magento/module-email": "100.0.0", 
     "magento/module-ui": "100.0.0", 
     "magento/framework": "100.0.0" 
    }, 
    "type": "magento2-module", 
    "version": "0.0.1", 
    "license": [ 
     "OSL-3.0", 
     "AFL-3.0" 
    ], 
    "autoload": { 
     "files": [ "registration.php" ], 
     "psr-4": { 
      "Magentostudy\\News\\": "" 
     } 
    } 
    } 

Registration.php

<?php 
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE, 
    'Magentostudy_News', 
    __DIR__ 
); 

Выполнение ниже команды, чтобы включить модуль

php ./bin/magento module:enable Magentostudy_News 

Это говорит there are no commands defined in the "module" namespace. Кроме того, на веб-интерфейсе он бросает под исключение. Я использую композитор, но не github.

Fatal error: Uncaught exception 'Magento\Framework\Exception\LocalizedException' with message 'Source class "\Magento\Framework\Module\Updater\Setup" for "Magento\Framework\Module\Updater\SetupFactory" generation does not exist.'

CODE EDIT

Добавлена ​​Setup папка с файлом InstallSchema.php, который включает в себя ниже код

<?php 
/** 
* @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com) 
*/ 

/* @var $installer \Magento\Setup\Module\SetupModule */ 

namespace Magentostudy\News\Setup; 

use Magento\Framework\Setup\InstallDataInterface; 
use Magento\Framework\Setup\ModuleDataSetupInterface; 
use Magento\Framework\Setup\ModuleContextInterface; 

$installer = $this; 
$installer->startSetup(); 

/** 
* Creating table magentostudy_news 
*/ 
$table = $installer->getConnection()->newTable(
    $installer->getTable('magentostudy_news') 
)->addColumn(
    'news_id', 
    \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
    null, 
    ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
    'Entity Id' 
)->addColumn(
    'title', 
    \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
    255, 
    ['nullable' => true], 
    'News Title' 
)->addColumn(
    'author', 
    \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
    255, 
    ['nullable' => true,'default' => null], 
    'Author' 
)->addColumn(
    'content', 
    \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
    '2M', 
    ['nullable' => true,'default' => null], 
    'Content' 
)->addColumn(
    'image', 
    \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
    null, 
    ['nullable' => true,'default' => null], 
    'News image media path' 
)->addColumn(
    'created_at', 
    \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP, 
    null, 
    ['nullable' => false], 
    'Created At' 
)->addColumn(
    'published_at', 
    \Magento\Framework\DB\Ddl\Table::TYPE_DATE, 
    null, 
    ['nullable' => true,'default' => null], 
    'World publish date' 
)->addIndex(
    $installer->getIdxName(
     'magentostudy_news', 
     ['published_at'], 
     \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_INDEX 
    ), 
    ['published_at'], 
    ['type' => \Magento\Framework\DB\Adapter\AdapterInterface::INDEX_TYPE_INDEX] 
)->setComment(
    'News item' 
); 
$installer->getConnection()->createTable($table); 
$installer->endSetup(); 
  1. Что такое правильный способ установки Magento 2 модули?
  2. Какой-нибудь важный шаг, который я пропустил?

URL ссылки: http://mageinferno.com/blog/setting-up-magento-2-module-right-way-composer-packagist

+0

вы пытаетесь со стабильной версией модуля релиза? –

+0

Ссылка на модуль - https://github.com/darshanb87/magento2-extension-example – Slimshadddyyy

+0

Пожалуйста, добавьте ссылку registration.php в module.json модуля в раздел автозагрузки. –

ответ

0

Здравствуйте здесь два правильно в вашем модуле вы должны попробовать

1: исправить ваш composer.json

вот простой пример:

{ 
"name": "magentostudy/module-news", 
"description": "N/A", 
"require": { 
    "php": "~5.5.0|~5.6.0|~7.0.0", 
    "magento/module-store": "100.0.0", 
    "magento/module-email": "100.0.0", 
    "magento/module-ui": "100.0.0", 
    "magento/framework": "100.0.0" 
}, 
"type": "magento2-module", 
"version": "0.0.1", 
"license": [ 
    "OSL-3.0", 
    "AFL-3.0" 
], 
"autoload": { 
    "files": [ "registration.php" ], 
    "psr-4": { 
     "Magentostudy\\News\\": "" 
    } 
} 

}

2:

В Каталоге есть одна папка отсутствует

Вызывается Настройка вместо SQL

для более подробной информации читать эти модули:

https://github.com/magento/magento2-samples

Из имени файла установки должен быть: InstallSchema.PHP

код что-то вроде:

namespace Magentostudy\News\Setup; 

use Magento\Framework\Setup\InstallSchemaInterface; 
use Magento\Framework\Setup\ModuleContextInterface; 
use Magento\Framework\Setup\SchemaSetupInterface; 

class InstallSchema implements InstallSchemaInterface 
{ 
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) 
    { 
     $installer = $setup; 

     $installer->startSetup(); 
     $table = $installer->getConnection() 
      ->newTable($installer->getTable('test_helloworld')) 
      ->addColumn(
       'id', 
       \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER, 
       null, 
       ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true], 
       'Id' 
      ) 
      ->addColumn(
       'label', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       null, 
       ['default' => null, 'nullable' => false], 
       'Name' 
      ) 
      ->addColumn(
       'value', 
       \Magento\Framework\DB\Ddl\Table::TYPE_TEXT, 
       null, 
       ['default' => null, 'nullable' => false], 
       'Stores' 
      ); 
     $installer->getConnection()->createTable($table); 
     $installer->endSetup(); 
    } 
} 

попытки отредактировать файл modules.xml как этот

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> 
    <module name="Magentostudy_News" setup_version="0.0.1"> 

    </module> 
</config> 
+0

Я обновил ответ снова, см. Это –

+0

Спасибо за ответ. См. Раздел «Редактирование кода», как вы указали. Что дальше я должен делать после обновления выше? Я все еще что-то упускаю? – Slimshadddyyy

+0

Это зависит от того, с какой ошибкой вы столкнулись сейчас, но я могу помочь вам больше в этом, если вы делитесь информацией со мной и отмечаете мой ответ как полезный –

Смежные вопросы