Kata kunci yang dicadangkan dalam aksi pengontrol - Magento 2

9

Saya sedang mengerjakan konsep grid admin. Saya menemukan satu kode sumber github dan menganalisisnya.

Sementara saya menemukan URL berbeda dari deklarasi di tata letak komponen UI .

<item name="url" xsi:type="string">*/*/new</item>

*/*berarti frontname saat ini dan jalur tindakan, tetapi saya tidak dapat menemukan New.phpdi jalur pengontrol tetapi NewAction.phpfile hadir.

Jadi saya bingung. Bagaimana pemetaan ini secara otomatis NewAction.phpmenyukai metode pabrik dalam Model?

adakah yang bisa menjelaskan hal ini?

Bilal Usean
sumber

Jawaban:

15

Ada beberapa kata yang tidak bisa Anda gunakan untuk nama kelas.
Pada dasarnya kata-kata php dilindungi undang-undang seperti new, public, static, ...

Untuk mengatasinya dan masih memungkinkan kata-kata ini di url, Magento menambahkan akhiran Actionketika kelas diisi secara otomatis.
Ini berarti newmemetakan ke NewAction.php, publicuntuk PublicAction.php.

Anda dapat menemukan di kelas \Magento\Framework\App\Router\ActionList(cabang 2.3) daftar kata yang memiliki perilaku ini.

protected $reservedWords = [
    'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const',
    'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare',
    'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final',
    'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'instanceof',
    'insteadof','interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected',
    'public', 'require', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var',
    'while', 'xor',
];

dan di sini adalah kode yang berubah newmenjadi NewAction.

Marius
sumber
1
penjelasan yang bagus!
Bilal Usean
@Marius 2nd link sudah usang.
sv3n