Directory Structure

[Since 0.5.0]

Pletfix Application Directory

|-[base](#base)/
   |-.manifest/                 Manifest files (generated by specific console commands)
   |  |-assets/                 Information about versioning the assets
   |  |-plugins/                Information about the registered plugins
   |-app/                       Autoload directory according to PSR-4 standard, namespace \App
   |  |-Commands/               Console commands
   |  |-Controllers/            Controllers of the application
   |  |-Drivers/                Drivers (can be loaded by Factories)
   |  |-Exceptions/             Application-specific exception classes
   |  |-Handlers/               Event- and exception handlers
   |  |-Middleware/             Middleware of the application
   |  |-Models/                 Models of the application
   |  |-Services/               Application-specific Services (are provided directly or indirectly by the DI)
   |-boot/                      Files that are already loaded during the boot process
   |  |-bootstrap.php           List of the bootstrappers that are active for the application
   |  |-routes.php              Route entries of the application
   |  |-services.php            Registration of application-specific services
   |-config/                    Configuration files
   |  |-app.php                 Basic configuration of the application
   |  |-cache.php               Configuration of the cache
   |  |-database.php            Configuration of the database
   |  |-hello.php               Configuration of the Plugin "hello" (exemplary)
   |  |-mail.php                Configuration of the cache
   |  |-session.php             Configuration of the PHP Session
   |-library/                   Application-specific library
   |  |-classes/                Classes loaded by classmap (because they do not follow the PSR-4 standard)
   |  |-facades/                Facaden (deprecated)
   |  |-functions/              Autoload directory for functions (each file must be entered in composer.json!)
   |  |  |-helpers.php          Helper functions
   |-public                     Files that the browser can access directly
   |  |-build/                  Versioned asset files (generated by the Asset Manager)
   |  |-css/                    Stylesheets
   |  |-fonts/                  Fonts
   |  |-images/                 Images
   |  |-js/                     JavaScript
   |  |-.htaccess               Apache htaccess file
   |  |-favicon.ico             Favicon for the browser
   |  |-index.php               Entry point of each web request
   |  |-php.ini                 Specific PHP configuration (useful for a web hosted system)
   |  |-robots.txt              Robots file
   |  |-sitemap.xml             Sitemap of the application
   |-resources/                 Data that the application accesses just indirectly (or never)
   |  |-assets/                 Data that is copied to the public folder using an asset manager
   |  |  |-css/                 Stylesheets
   |  |  |-fonts/               Fonts
   |  |  |-js/                  JavaScript
   |  |  |-less/                Less files (compiled to CSS files by the asset manager)
   |  |  |-sass/                SASS files (compiled to CSS files by the asset manager)
   |  |  |-scss/                SCSS files (compiled to CSS files by the asset manager)
   |  |  |-build.php            Asset Build Information File
   |  |-docs/                   Documents
   |  |-lang/                   Translation files (compiled at first access and stored in cache)
   |  |  |-de/                  German translation
   |  |  |-en/                  English translation
   |  |-migrations/             Migration files
   |  |-views/                  Views (compiled at first access and stored in cache)
   |-storage/                   Data, created during the runtime (folder is writable, ignored by git)
   |  |-cache/                  Cache
   |  |  |-doctrine/            Destination for the application cache (Doctrine Adapter)
   |  |  |-lang/                Compiled translation files
   |  |  |-views/               Compiled views
   |  |  |-commands.php         List of available console commands (generated by the CommandFactory)
   |  |  |-config.php           Compiled configuration files (updated when booting, if necessary)
   |  |-db/                     SQLite database files
   |  |-logs/                   Log files
   |  |-sessions/               PHP Session files
   |  |-temp/                   Temporary files
   |  |-upload/                 Uploaded files
   |-tests/                     Contains your automated tests
   |-vendor/                    Pletfix Core, Plugins and Third Party Packages - don't modify this code!
   |-workbench/                 Folder for core or plugin development
   |-.env                       Environment file (ignored by git)
   |-.env.example               Example of all possible environment variables
   |-.gitignore                 List of files and folders ignored by git
   |-composer.json              Composer configuraton
   |-composer.lock              Composer lock file
   |-console                    Starter for console command (shell-script)
   |-LICENSE                    License information
   |-phpunit.xml                Test settings (ignored by git)
   |-phpunit.xml.dist           Test settings (fallback, if phpunit.xml not exists)
   |-packages.json              Package information (used by composer for the create-project command)
   |-README.md                  Quick installation and usage guide for the application

Core Directory

|-vendor/
   |-pletfix/
      |-core/
         |-bin/                 Binaries
         |  |-hiddeninput.exe   Required on Windows for a hidden input in console programs
         |-boot/                Files that are already loaded during the boot process
         |  |-bootstrap.php     List of the bootstrappers that are active for the application
         |  |-routes.php        Route entries of the application
         |  |-services.php      Registration of application-specific services
         |-config/              Configuration files
         |  |-app.php           Basic configuration of the application
         |  |-cache.php         Configuration of the cache
         |  |-database.php      Configuration of the database
         |  |-mail.php          Configuration of the cache
         |  |-session.php       Configuration of the PHP Session
         |-src/                 Autoload directory according to PSR-4 standard, namespace \Core
         |  |-Bootsraps/        Bootstrapper
         |  |-Commands/         Console commands
         |  |-Controllers/      Controllers
         |  |-Exceptions/       Exception classes
         |  |-Handlers/         Event- and exception handlers
         |  |-Middleware/       Middleware classes
         |  |-Models/           Model classees
         |  |-Services/         Service classes (are provided directly or indirectly by the DI)
         |  |-Testing/          TestCase and MinkTestCase definition
         |  |-Application.php   Web application (delegates the request to the required route)
         |  |-Console.php       Console command line interpeter (loads a console command and executes it)
         |  |-Framework.php     Base class for Application und Console
         |-tests/               Contains your automated tests
         |  |-bootstrap.php     Bootstrap for PHPUNit
         |-.build.sh            Build script for Travic CI
         |-.gitignore           List of files and folders ignored by git
         |-.travis.yml          Configuration for Travic CI
         |-composer.json        Composer configuraton
         |-helpers.php          Helper functions
         |-LICENSE              License information
         |-phpunit.xml.dist     Test settings
         |-README.md            Quick installation and usage guide for the core

Plugin Directory

|-vendor/
   |-foo/                       Vendor name (here "foo" for example)
      |-bar/                    Plugin name (here "bar" for example)
         |-assets/              Files that are copied to the public folder using an asset manager
         |  |-build.php         Asset Build Information File
         |-boot/                Boot files
         |  |-routes.php        Route entries of the plugin
         |  |-services.php      Registration of the services provided by the plugin
         |-lang/                Translation files Translation files (compiled at first access and stored in cache)
         |  |-de.php            German translation
         |  |-en.php            English translation
         |-migrations/          Migration files
         |-public/              Files that are copied into the public folder of the application
         |-src/                 Autoload directory according to PSR-4 standard, namespace <vendor>\<plugin>
         |  |-Bootsraps/        Plugin-specific bootstrapper
         |  |-Commands/         Console commands
         |  |-Controllers/      Controllers
         |  |-Drivers/          Drivers (can be loaded by Factories)
         |  |-Middleware/       Middleware classes
         |  |-Services/         Service classes (are provided directly or indirectly by the DI)
         |-tests/               Contains your automated tests
         |-views/               Views (compiled at first access and stored in cache)
         |-composer.json        Composer configuration
         |-config.php           Configuration file of the plugins
         |-helpers.php          Helper functions
         |-LICENSE              License information
         |-phpunit.xml.dist     Test settings
         |-README.md            Quick installation and usage guide for the plugin

(edit on GitHub)