一键导入
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