Create a new project using QuidPHP and LemurCMS
QuidPHP/Project repository contains the necessary structure to create a new project using QuidPHP and LemurCMS.
QuidPHP/Project is available as an open-source software under the MIT license.
QuidPHP/Project documentation is available at QuidPHP/Docs.
$ composer create-project quidphp/project --prefer-dist
QuidPHP/Project requires the following:
- Apache or Nginx server (running on MacOs or Linux environment).
- Works in Windows environment but there are known issues.
- PHP 8.1
- with these extensions:
- and these PHP INI directives
- post_max_size must be at least 1MB
- post_max_size must be larger than upload_max_filesize
- memory_limit must be at least 128MB
- with these extensions:
- Mysql (>= 8.0) or MariaDB (>= 10.4) database
- Any modern browser (not Internet Explorer)
QuidPHP/Assert has the following dependency:
- quidphp/site - Quid\Site - Extended platform to build a website using the QuidPHP framework and LemurCMS
All dependencies will be resolved by using the Composer installation process.
Once the installation is complete, simply follow these steps:
- Make sure the storage and public folders are writable by your web server. For storage also make sure all subdirectories are writable.
- Configure an Apache Virtual Host or Nginx Server Block in order to have a domain pointing to the public folder document root.
- Import db.sql within a new Mysql/MariaDB database.
- Duplicate the env-default.php file and rename it to env.php.
- Update the scheme hosts within the env.php file. You will need to set a different host (domain or subdomain) for the application and the CMS.
- Update the database parameters within the env.php file.
- Not required, but you are encouraged to change the namespace of all PHP classes within the src folder. The default namespace is Project.
From your web browser, enter the URL to the public/index.php entry file. The host used will determine if the application or CMS is booted.
Open the project folder in the Command Line. You may now submit a command in the following format:
php quid [path][:envType] exemple: php quid /en/my-url php quid /en/my-url:dev/cms php quid /:prod/app
Once you open the CMS within your browser, you will need to login. The default user is:
- Username: admin
- Password: changeme123
Once you are logged in, you will be able to change the password for the user and create new users.
QuidPHP/Project contains 21 files. Here is an overview:
- .gitignore - Standard .gitignore file for the project
- composer.json - File declaring all Composer PHP dependencies
- db.sql - Minimal database structure required
- env-default.php - Declare environment data for the application, copy this file and rename to env.php
- LICENSE - MIT License file for the repository
- quid - File for booting the application and Cms via CLI
- README.md - This readme file in markdown format
- storage/public/favicon.ico - Generic favicon (16x16), this will be symlinked to public/favicon.ico.
- css/app/_include.scss - Scss stylesheet for declaring variables and mixins
- css/app/app.scss - Main scss stylesheet for the app
- public/.htaccess - Simple apache directive file, requires mod_rewrite
- public/index.php - Index file for booting the application and Cms via an HTTP request
- src/Boot.php - Class for booting the application and CMS
- src/Route.php - Abstract class for a route, all routes will extend this class
- src/Row.php - Abstract class for a row, all rows will extend this class
- src/Session.php - Class used to represent the active session
- src/App/_template.php - Trait used by all routes which generate an interface
- src/App/Error.php - Class for the error route of the app
- src/App/Home.php - Class for the home route of the app
- src/Row/User.php - Class for a row of the user table
- On Windows, there are some problems related to creating symlinks.
- On Windows, you will need to add lower_case_table_names = 2 in your database configuration file (my.cnf). The table and column names need to be stored in their natural case.
QuidPHP testsuite can be run by creating a new QuidPHP/Assert project.