mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
Creating your own Application structure
 | 
						|
=======================================
 | 
						|
 | 
						|
> Note: This section is under development.
 | 
						|
 | 
						|
While the [basic](https://github.com/yiisoft/yii2-app-basic) and [advanced](https://github.com/yiisoft/yii2-app-advanced)
 | 
						|
project templates are great for most of your needs, you may want to create your own project template with which
 | 
						|
to start your projects.
 | 
						|
 | 
						|
Project templates in Yii are simply repositories containing a `composer.json` file, and registered as a Composer package.
 | 
						|
Any repository can be identified as a Composer package, making it installable via `create-project` Composer command.
 | 
						|
 | 
						|
Since it's a bit too much to start building your entire template from scratch, it is better to use one of the built-in
 | 
						|
templates as a base. Let's use the basic template here.
 | 
						|
 | 
						|
Clone the Basic Template
 | 
						|
----------------------------------------
 | 
						|
 | 
						|
The first step is to clone the basic Yii template's Git repository:
 | 
						|
 | 
						|
```bash
 | 
						|
git clone git@github.com:yiisoft/yii2-app-basic.git
 | 
						|
```
 | 
						|
 | 
						|
Then wait for the repository to be downloaded to your computer. Since the changes made to the template won't be pushed back, you can delete the `.git` directory and all
 | 
						|
of its contents from the download.
 | 
						|
 | 
						|
Modify the Files
 | 
						|
------------
 | 
						|
 | 
						|
Next, you'll want to modify the `composer.json` to reflect your template. Change the `name`, `description`, `keywords`, `homepage`, `license`, and `support` values
 | 
						|
to describe your new template. Also adjust the `require`, `require-dev`, `suggest`, and other options to match your template's requirements.
 | 
						|
 | 
						|
> Note: In the `composer.json` file, use the `writable` parameter under `extra` to specify
 | 
						|
> per file permissions to be set after an application is created using the template.
 | 
						|
 | 
						|
Next, actually modify the structure and contents of the application as you would like the default to be. Finally, update the README file to be applicable to your template.
 | 
						|
 | 
						|
Make a Package
 | 
						|
--------------
 | 
						|
 | 
						|
With the template defined, create a Git repository from it, and push your files there. If you're going to open source your template, [Github](http://github.com) is the best place to host it. If you intend to keep your template non-collaborative, any Git repository site will do.
 | 
						|
 | 
						|
Next, you need to register your package for Composer's sake. For public templates, the package should be registered at [Packagist](https://packagist.org/).
 | 
						|
For private templates, it is a bit more tricky to register the package. For instructions, see the [Composer documentation](https://getcomposer.org/doc/05-repositories.md#hosting-your-own).
 | 
						|
 | 
						|
Use the Template
 | 
						|
------
 | 
						|
 | 
						|
That's all that's required to create a new Yii project template. Now you can create projects using your template:
 | 
						|
 | 
						|
```
 | 
						|
composer global require "fxp/composer-asset-plugin:^1.3.1"
 | 
						|
composer create-project --prefer-dist --stability=dev mysoft/yii2-app-coolone new-project
 | 
						|
```
 |