mvenghaus/magento2-script-bootstrap

Bootstrap for your magento 2 scripts

1.1.0 2024-12-06 09:12 UTC

This package is auto-updated.

Last update: 2024-12-06 09:14:11 UTC


README

Run your (quick & dirty) scripts with the usual comfort

Sometimes, you might want to run small Magento scripts without creating an additional module for them. To achieve this, you need to bootstrap Magento yourself. This is where this module comes in handy, it manages the bootstrap process for you.

What are the benefits?

  • instant setup (1 simple file)
  • no module means no deployment (setup:upgrade, ...)

Installation

composer require mvenghaus/magento2-script-bootstrap

NOTE It's not a magento module so you don't have to run setup:upgrade.

Basic Example

Let's assume you have a folder "scripts" in your root directory.

scripts/hello-world.php

<?php declare(strict_types=1);

use Mvenghaus\ScriptBootstrap\Bootstrap;
use Mvenghaus\ScriptBootstrap\Contracts\ScriptInterface;

use Magento\Framework\Filter\TranslitUrl;

// magento bootstrap
require __DIR__ . '/../app/bootstrap.php';

class Script implements ScriptInterface
{
    public function __construct(
        private readonly TranslitUrl $translitUrl,
    ) {
    }

    public function run(): void
    {
        echo $this->translitUrl->filter('Hello World');
    }
}

Bootstrap::run(Script::class);

Just run it

php script/hello-world.php

Modfiy the enviroment

You can use the following PHP attributes on your run method to modify your environment.

#[SetAreaCode]

You can easily update your area code with this attribute.

#[SetArea(\Magento\Framework\App\Area::AREA_ADMINHTML)]

#[SetSecureArea]

Certain operations, such as deleting in Magento, need to be performed within a 'secure area.' This attribute activates that functionality.

#[SetSecureArea]

Example

...
    #[SetArea(\Magento\Framework\App\Area::AREA_ADMINHTML)]
    #[SetSecureArea]
    public function run(): void
    {
        echo $this->translitUrl->filter('Hello World');
    }

...