Đây là một cách tốt hơn so với việc kết nối vào hệ thống thử nghiệm: Sử dụng giao diện dòng lệnh của Magento 2.
Điều này không có nghĩa là bạn sẽ phải tích hợp mã hộp cát của mình vào một mô-đun thực tế (hoặc tạo một mục đích cho mục đích này), nhưng dù sao bạn cũng nên làm điều đó.
Khi bạn đã thiết lập mô-đun của mình , việc thêm một lệnh khá dễ dàng. Tất cả bạn cần là lớp và DI để đăng ký nó.
1. {mô-đun} /etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\Console\CommandList">
<arguments>
<argument name="commands" xsi:type="array">
<item name="greeting_command" xsi:type="object">Magento\CommandExample\Console\Command\GreetingCommand</item>
</argument>
</arguments>
</type>
</config>
2. {module} /Console/Command/GreetCommand.php
<?php
namespace Magento\CommandExample\Console\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class GreetingCommand
*/
class GreetingCommand extends Command
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName('example:greeting')
->setDescription('Greeting command');
parent::configure();
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('<info>Hello world!</info>');
}
}
Ví dụ được lấy từ https://github.com/magento/magento2-samples/tree/master/sample-module-command - xem ở đó để biết mô-đun hoàn chỉnh kết hợp chức năng này. Có những ví dụ ít tầm thường hơn bao gồm.
Theo quy ước, lớp lệnh của bạn phải luôn ở trong {module}/Console/Command
và kết thúc bằng Command.php
.
Khi bạn đã thêm hai bit mã đó (và xóa bộ đệm Magento, v.v.), hãy thực hiện lệnh của bạn theo tên trong SSH : php bin/magento example:greeting
.
Bạn có thể sử dụng phép nội xạ phụ thuộc trong ngữ cảnh này, vì vậy bạn có thể chạy bất kỳ mã nào bạn muốn trong đó execute()
.
Giao diện này được xây dựng trên thành phần Console của Symfony , vì vậy bạn cũng có quyền truy cập đầy đủ vào tất cả các chức năng rộng lớn đó, bao gồm các tùy chọn / đối số , bảng và thanh tiến trình rất dễ dàng .
Nếu bạn gặp phải bất kỳ vấn đề nào khi thiết lập lệnh hoặc tùy chọn của mình, bạn thường có thể chạy lệnh 'list' để hiểu rõ hơn về những gì đang xảy ra: php bin/magento list
Thưởng thức.