원클릭으로
plugin-init
Create a new Sylius plugin from the official PluginSkeleton with Docker environment
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a new Sylius plugin from the official PluginSkeleton with Docker environment
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Implement the fix described in a GitHub issue and open a Pull Request that closes it
Apply the latest review feedback to a Pull Request and push it to the PR branch
Add an admin autocomplete form type for a Sylius Resource (translatable or not), optionally injected into another form via an extension
Add an admin FormType for an existing Sylius Resource
Add a Sylius admin grid for an existing Sylius Resource
Add a multiple images collection (OneToMany) to an existing Sylius Resource
| name | plugin-init |
| description | Create a new Sylius plugin from the official PluginSkeleton with Docker environment |
| argument-hint | [Company] [PluginName] [description] |
| allowed-tools | AskUserQuestion, Bash, Read, Edit, Write, Glob, Grep |
Arguments are appended at the end as ARGUMENTS: Company PluginName "description". Parse them to get Company (PascalCase), PluginName (PascalCase), and Description.
If no arguments are provided, use AskUserQuestion to collect Company, PluginName, and Description.
Derive the directory name from Company and PluginName: {Company}{Name}Plugin (PascalCase concatenation, e.g. Guiziweb + Blog → GuiziwebBlogPlugin). The package name, namespace, and bundle class are set by rename-plugin.php in step 5.
Clone the skeleton:
git clone https://github.com/Sylius/PluginSkeleton.git {Company}{Name}Plugin
cd {Company}{Name}Plugin
rm -rf .git
cp compose.override.dist.yml compose.override.yml
Check ports: read compose.override.yml to identify exposed ports, then run lsof checks in parallel. If a port is in use, find a free port and update compose.override.yml.
Initialize Docker (this takes several minutes — run in background using run_in_background: true):
ENV=dev make init
If error, run the same command again. Wait for completion before proceeding.
Rename the plugin (via Docker, after make init finishes):
docker compose exec php php bin/rename-plugin.php --company={Company} --plugin-name={Name} --description="{description}" --skip-interaction
Initialize the database:
make database-init && make load-fixtures
Display setup summary to the user:
| Service | URL |
|---|---|
| Frontend | http://localhost:{http_port} |
| Admin | http://localhost:{http_port}/admin |
| MySQL | localhost:{mysql_port} |
| Mailhog | http://localhost:{mailhog_port} |
Admin credentials: sylius@example.com / sylius
/sylius-plugin:add-model