Project Directory Structure

Contributers: Mick Mifsud

Modified: 3 years ago

Page Permission: Public - Revision: 791

 

. 
|-- bin
|   `-- assets
|-- data
|   |-- cache
|   |-- institution
|   `-- temp
|-- docs
|-- html
|   |-- app
|   `-- mvpready
|-- _notes
|-- plugin
|   |-- plg-animal
|   |-- plg-ca
|   |-- plg-coa
|   |-- plg-ldap
|-- src
|   |-- App
|   `-- config
`-- vendor
   |-- bin
   |-- composer
   |-- phpmailer
   |-- phpoffice
   |-- psr
   |-- symfony
   |-- ttek
   `-- ...

./bin:

The bin folder is where the "cmd" command is that allows us to update the site and many other functions. If you need to create command line scripts place them here or add to the "cmd" command in the codebase.

CMD Tool

 

 

./data:

All sites have a public Data folder. This holds any user uploaded files and system created files like logs and cache files.

 

./docs:

Use this folder to store any site user documentation.

 

./html:

This is where the base templates reside. There will be an app folder that contains templates that can overwrite the imported template, by default the imported template is theme-cube, but the EMS uses mvpready. These are stored in a composer repository and can be updated as long as they can be used on all sites. They are mainly the page templates and do not contain things like content templates, they are either in the Controllers or the app folder.

 

./_notes:

The contents of this folder are not committed to the repository, its handy to hole files relating to current dev operations like instruction documents and related image files that you may be editing for the site.

 

./plugin:

The TK Framework allows for a plugin system, this is where they are installed to. There are a number of plugins that have been built and the mail-log is the most used one across all sites. See the tk-installers library for how we modify the install the site using the composer update/install command.

 

./src:

This is the main location for all the code directly related to the site. It contains two main directories. App and config, the App directory holds all objects relating to the operation of the site. The config directory is where the main config.php file is. The config.php file is generated automatically on install if it does not exist (along with the /.htaccess file) The source that it is generated from is the config.php.in file that should contain sain defaults. The config file setup the DB access and allows you to override template files. Also it is the final file executed, see the application.php file for some of the options you can override.

There are also two libs to keep in mind tk-base and tk-uni. Think of it as the site inherits tk-uni and tk-uni inherits the tk-base functions. They also contain sql, config, and objects that are executed as the site runs. Be sure to check them if you cannot find a config option in the main app config.php.

 

./vendor:

 This is where all the composer managed libs are stored.