|
|
|
Creating your own Application structure
|
|
|
|
=======================================
|
|
|
|
|
|
|
|
> Note: This chapter is under development.
|
|
|
|
|
|
|
|
While [basic](apps-basic.md) and [advanced](apps-advanced.md) application templates are great for most of your needs
|
|
|
|
you may want to create your own application template to start your projects with.
|
|
|
|
|
|
|
|
Application templates are repositories containing `composer.json` and registered as Composer packages so you can make
|
|
|
|
any repository a package and it will be installable via `create-project` command.
|
|
|
|
|
|
|
|
Since it's a bit too much to start building your template from scratch it is better to use one of built-in templates
|
|
|
|
as a base. Let's use basic template.
|
|
|
|
|
|
|
|
Clone basic template repository from git
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
```
|
|
|
|
git clone git@github.com:yiisoft/yii2-app-basic.git
|
|
|
|
```
|
|
|
|
|
|
|
|
And wait till it's downloaded. Since we don't need to push our changes back to Yii's repository we delete `.git` and all
|
|
|
|
of its contents.
|
|
|
|
|
|
|
|
Modify files
|
|
|
|
------------
|
|
|
|
|
|
|
|
Now we need to modify `composer.json`. Change `name`, `description`, `keywords`, `homepage`, `license`, `support`
|
|
|
|
to match your new template. Adjust `require`, `require-dev`, `suggest` and the rest of the options.
|
|
|
|
|
|
|
|
> **Note**: In `composer.json` file `writable` under `extra` is functionality added by Yii that allows you to specify
|
|
|
|
> per file permissions to set after an application is created using the template.
|
|
|
|
|
|
|
|
Next actually modify the structure of the future application as you like and update readme.
|
|
|
|
|
|
|
|
|
|
|
|
Make a package
|
|
|
|
--------------
|
|
|
|
|
|
|
|
Create git repository and push your files there. If you're going to make it open source github is the best way to host it.
|
|
|
|
If it should remain private, any git repository would do.
|
|
|
|
|
|
|
|
Then you need to register your package. For public templates it should be registered at [packagist](https://packagist.org/).
|
|
|
|
For private ones it is a bit more tricky but well defined in
|
|
|
|
[Composer documentation](https://getcomposer.org/doc/05-repositories.md#hosting-your-own).
|
|
|
|
|
|
|
|
Use it
|
|
|
|
------
|
|
|
|
|
|
|
|
That's it. Now you can create projects using a template:
|
|
|
|
|
|
|
|
```
|
|
|
|
php composer.phar create-project --prefer-dist --stability=dev mysoft/yii2-app-coolone new-project
|
|
|
|
```
|