./script/solar make-vendor VendorName
The make-vendor command creates all the basic source files for a new vendor space inside a Solar system. The idea is, when you start a new project, you will use a new vendor space for the controllers, models, views, and other components of the application. You can have as many vendors as you like, so long as their names are different.
To create a new vendor space inside a Solar system, issue the following command:
$./script/solar make-vendorMaking vendor source directories. CreatingVendorNameSYSTEM/source/vendor-name/config. CreatingSYSTEM/source/vendor-name/docs. CreatingSYSTEM/source/vendor-name/script. CreatingSYSTEM/source/vendor-name/tests. CreatingSYSTEM/source/vendor-name/tests/Mock. CreatingSYSTEM/source/vendor-name/tests/Mock/VendorName. CreatingSYSTEM/source/vendor-name/tests/Test. CreatingSYSTEM/source/vendor-name/tests/Test/VendorName. CreatingSYSTEM/source/vendor-name/VendorName/Cli/Help. CreatingSYSTEM/source/vendor-name/VendorName/Cli/Help/Info. CreatingSYSTEM/source/vendor-name/VendorName/Cli/Help/Locale. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Bread/Locale. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Bread/Public. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Command/Info. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Command/Locale. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Page/Layout. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Page/Locale. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Page/Public. CreatingSYSTEM/source/vendor-name/VendorName/Controller/Page/View. CreatingSYSTEM/source/vendor-name/VendorName/Model. WritingSYSTEM/source/vendor-name/VendorName/Cli/Help.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Cli/Help/Info/options.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/Locale/en_US.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/_item.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/_list.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/add.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/browse.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/delete.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/edit.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/read.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Bread/View/search.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Command.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Controller/Page.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Filter.php ... done. Making directorySYSTEM/source/vendor-name/VendorName/Sql ... done. WritingSYSTEM/source/vendor-name/VendorName/Sql/Model.php ... done. Making directorySYSTEM/source/vendor-name/VendorName/Sql/Model ... done. WritingSYSTEM/source/vendor-name/VendorName/Sql/Model/Collection.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Sql/Model/Metadata.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Sql/Model/Record.php ... done. WritingSYSTEM/source/vendor-name/config/default.php ... done. WritingSYSTEM/source/vendor-name/config/run-tests.php ... done. WritingSYSTEM/source/vendor-name/VendorName/Cli/Help/Info/help.txt ... done. Making links for vendor 'VendorName' ... Making link 'include/VendorName' ... done. Making link 'include/Test/VendorName' ... done. Making link 'include/Mock/VendorName' ... done. Making link 'script/vendor-name' ... done. ... done. Making public symlinks for 'VendorName' ... Making public directory docroot/public/VendorName/Controller ... done. Making public symlink forVendorName_Controller_Bread ... done. Making public symlink forVendorName_Controller_Page ... done. ... done. Remember to add 'VendorName_App' to the ['Solar_Controller_Front']['classes'] element in your config file so that it finds your apps. Remember to add 'VendorName_Model' to the ['Solar_Sql_Model_Catalog']['classes'] element in your config file so that it finds your models. $
What is going on here?
-
The command creates a new source directory for
vendor-nameand adds some standard directories therein:configfor default configuration files,docsfor documentation files,scriptfor thevendor-namecommand-line interface,testsfor integration tests, and of course thedirectory for PHP classes.VendorName -
The command creates a series of baseline classes and directories for
VendorNamePHP code: a minimal page controller, a boilerplace browse/read/edit/add/delete ("BREAD") controller, a base class forVendorName-specific models, directories for view helpers and concrete model classes, and so on. -
Finally, the command creates symbolic links from the source directory to other locations in the Solar system, so that when source files change, you don't need to copy them out to the rest of the system.