mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-10-31 18:47:33 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.7 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 create-project --prefer-dist --stability=dev mysoft/yii2-app-coolone new-project
 | |
| ```
 | 
