![]() |
Belajar menjadi Magento Backend Developer |
Pahami struktur dokumentasi resmi, so far sejauh yang saya lihat ini adalah bagian dokumentasi yang wajib dilihat-lihat dan dipahami untuk dapat menjadi seorang Magento 2 backend developer.
- Installation Guide
- Post tentang proses instalasi yang saya lakukan sebelumnya.
- Configuration Guide
- PHP Developer Guide
- Architecture Guide
- Extension Best Practices
- Coding Standards
- Magento Reference Guide
- Performance Best Practices
Sempatkan waktu luang untuk membaca dokumentasi diatas, walau sekilas saja akan cukup membantu dan mengurangi kesalahan atau kekonyolan yang bisa saja terjadi dikemudian hari.
Bila anda melihat Magento sebagai sebuah CMS yang begitu saja diinstall dan ditambahkan ini dan itu dari themes dan ektensi yang sudah ada mungkin akan terlihat biasa saja, tapi saat masuk kedalam dan terlibat dalam mengembangkan berbagai fitur dengan aktifitas coding maka beberapa hal seram dan mengerikan mungkin akan terjadi.
1. Set Magento Developer Mode
Untuk memulai pertama-tama saya menjadikan mode Magento 2 yang aktif sebagai mode developer. Untuk mengetahui jenis-jenis mode dan perbedaan antara mode dapat melihat dokumentasi ini.
![]() |
Set Magento Developer Mode |
1.1. Cek Current Mode
Bila ingin mengecek mode yang sedang aktif dapat menggunakan perintah dibawah ini.
![]() |
Cek Current Mode |
1.2. Available Mode
- bin/magento deploy:mode:set production
- bin/magento deploy:mode:set developer
- bin/magento deploy:mode:set default
2. Membuat Hello World Dengan Magento 2
Sampai disini maka masuklah kita ke momen-momen yang mendebarkan yaitu membuat Hello World yang sakral. Step ini sendiri saya coba ikuti dari tutorial berikut (Mau yang lebih komplit kesini).
![]() |
Saya buat container php-fpm yang berisi macam-macam project PHP saya (Memang bukan best practice ya!) |
Sekedar informasi post tentang proses instalasi yang saya lakukan sebelumnya.
2.1. Buat Files dan Folders Yang Diperlukan
Mari kita buat beberapa folders dan files untuk membuat hello world.
<?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="Yoesoff_HelloWorld" setup_version="1.0.0">
</module>
</config>
Isi registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Yoesoff_HelloWorld',
__DIR__
);
2.3. Aktifkan Modul
![]() |
Cek apakah module baru Yoesoff_HelloWorld ditemukan? ok, ada! |
![]() |
Aktifkan module Yoesoff_HelloWorld |
![]() |
Hasil aktivasi |
Ups, ada 2x errors!
1. Perbaiki Folder permission.
Fatal error: Uncaught Magento\Framework\Exception\FileSystemException: The directory "/var/www/myshop/generated/code" cannot be deleted Warning!rmdir(/var/www/myshop/generated/code): Permission denied in /var/www/myshop/vendor/magento/framework/Filesystem/Directory/Write.php:202 Stack trace: #0 /var/www/myshop/vendor/magento/framework/Code/GeneratedFiles.php(87): Magento\Framework\Filesystem\Directory\Write->delete('generated/code') #1 /var/www/myshop/vendor/magento/framework/App/ObjectManagerFactory.php(111): Magento\Framework\Code\GeneratedFiles->cleanGeneratedFiles() #2 /var/www/myshop/vendor/magento/framework/App/Bootstrap.php(210): Magento\Framework\App\ObjectManagerFactory->create(Array) #3 /var/www/myshop/vendor/magento/framework/App/Bootstrap.php(125): Magento\Framework\App\Bootstrap->__construct(Object(Magento\Framework\App\ObjectManagerFactory), '/var/www/myshop', Array) #4 /var/www/myshop/pub/index.php(37): Magento\Framework\App\Bootstrap::create('/var/www/myshop', Array) #5 {main} thrown in /var/www/myshop/vendor/magento/framework/Filesystem/Directory/Write.php on line 202
![]() |
Perbaiki folder permission |
1 exception(s): Exception #0 (Magento\Framework\Exception\LocalizedException): Please upgrade your database: Run "bin/magento setup:upgrade" from the Magento root directory. The following modules are outdated: Yoesoff_HelloWorld schema: current version - none, required version - 1.0.0 Yoesoff_HelloWorld data: current version - none, required version - 1.0.0 Exception #0 (Magento\Framework\Exception\LocalizedException): Please upgrade your database: Run "bin/magento setup:upgrade" from the Magento root directory. The following modules are outdated: Yoesoff_HelloWorld schema: current version - none, required version - 1.0.0 Yoesoff_HelloWorld data: current version - none, required version - 1.0.0 <pre>#1 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #2 Magento\Framework\App\FrontController\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/FrontController/Interceptor.php:26] #3 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor/magento/framework/App/Http.php:136] #4 Magento\Framework\App\Http->launch() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:24] #5 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:258] #6 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:40] </pre>
![]() |
Setup upgrade |
2.2. Membuat Route
Url Magento 2 terbagi menjadi 3 bagian yaitu:
- Route frontname
- Controller
- Action.
http://myshop.local/frontname/controller/action
2.3. Membuat Controller
<?php
namespace Yoesoff\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}
Beri hak akses pada folder project supaya bisa menambahkan, menghapus dan mengedit files dan folders.
![]() |
chown -R www-data:www-data . |
![]() |
sudo chown -R $USER:docker . |
2.5. Penjelasan struktur URL.
http://myshop.local/frontname/controller/action
- Implementasinya jadi.
http://myshop.local/helloworld/index/test
- Bagian /helloworld/

- Bagian /index/test

Bila merubah bagian-bagian diatas maka jangan lupa untuk upgrade untuk mereload module.

Selanjutnya baca-baca ini.
Tempat-tempat yang rekomended untuk belajar Magento 2.
- How to install Magento 2 with sample data via command line
- How to create my first Magento 2 Module
- Useful CLI commands for Magento 2 Developers
- How to create Hello World module in Magento 2
- How to work with Customer Attribute in Magento 2 - Part 1, Part 2, Part 3, Part 4, and Part 5
- Magento 2 Migration - Tips and Tricks, Magento Imagine 2017
- How to build custom theme in Magento 2.
Comments
Post a Comment