Submit Your Project / Idea
We are actively looking for cool ideas of packages / projects to develop. Have an idea, or need a specific package developed that you're having trouble finding elsewhere? Drop a message on the Reddit forum and let us know!
Your idea may get developed free of charge and open sourced, or maybe will be developed and released commercially for a small license fee, or maybe will spawn a great discussion and even better ideas! If your idea is picked up, it will be listed on the Projects page.
Jump in and share your ideas! Don't be left behind, get modern and professional with Apex!
There are various small PHP classes available within the /src/svc/ directory, which allow various important components / libraries of Apex to be statically accessed. For example:
In the above example it appears we are accessing the methods statically, but in reality we are not. All three classes were created by and retrieved from the dependency injection container, using the classes defined within the bootstrap configuration file (see below). The small service classes simply relay the calls to the proper PHP classes non-statically, providing for greater simplicity and accessibility, while still utilizing the power and flexibility of dependancy injection.
The below table lists all services available within the main Apex platform. Please note, installed packages may offer additional services other than those listed below.
Bootstrap Configuration Files
The /bootstrap/ directory contains one PHP configuration file for each of the different request types (http, cli, test), and defines the exact PHP classes to load for each service. For example, if you wanted to switch to the monolog log handler, or a different database driver, you would do so within these configuration files. For another example, the emailer service is changed in the test.php script to a different PHP class that instead of sending the e-mail messages via SMTP, it returns them to the unit test for assertion testing.
Please take a look at the existing configuration files to see how they are formatted, but they are quite straight forward. They simply return one associative array, the keys being the interface / class name (key within the container), and the value being an array defining the PHP class to load.