keenlysoft / app
Application skeleton for the Keenly lightweight PHP framework
Requires
- php: >=7.4 <9.0
- keenlysoft/database: ^1.28
- keenlysoft/keenly: ^2.5
README
keenlysoft/app is the Composer application skeleton for the Keenly lightweight PHP framework. It creates a small web application with example controllers, views, configuration templates, and the keenly command-line helper.
Features
- Composer-based project creation
- Default
indexandadminapplication modules - Generated framework configuration files
- Web front controller for route dispatch
keenlyCLI helper for model generation and controller actions- Minimal defaults intended for extension by application developers
Requirements
- PHP 7.4 or later, including PHP 8.x
- Composer 2
- A web server such as Nginx, Apache, or IIS
- PHP extensions required by the enabled Keenly features
PHP 7.4 remains supported for existing applications. New deployments should prefer a maintained PHP 8.x release.
Installation
Create a new project with Composer:
composer create-project keenlysoft/app keenly
cd keenly
Composer uses Packagist by default. Older releases referenced a regional Composer mirror; that mirror is no longer required.
Quick Start
Start the PHP development server from the generated project:
php -S 127.0.0.1:8080 -t web
Open http://127.0.0.1:8080 in a browser. For production, configure your web server document root to point to web/.
Example Nginx routing:
server { listen 80; server_name example.test; root /path/to/keenly/web; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/path/to/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } }
Replace the document root and fastcgi_pass value with paths for your environment.
CLI Usage
Generate models from the application root:
php keenly model php keenly model user php keenly model -f user
Run a controller action:
php keenly cli admin@index@index argument1 argument2
The CLI route format is project@controller@method, followed by optional arguments.
Project Structure
| Path | Purpose |
|---|---|
admin/ |
Example admin module |
index/ |
Default web module |
models/ |
Application models and one-time installation hook |
config/ |
Generated application configuration |
web/ |
Generated public document root and front controller |
keenly |
Generated CLI entry point |
Configuration
Configuration files are generated under config/ during composer create-project. Review them before deployment. Do not commit production credentials. Use environment-specific configuration for database and Redis secrets.
Documentation
Roadmap
- Expand PHP 8.x integration coverage with disposable services
- Add a full generated-project smoke test
- Review environment-based configuration examples
- Refresh the default landing page and server configuration examples
Contributing
Contributions are welcome. Please read CONTRIBUTING.md, follow the Code of Conduct, and report security issues according to SECURITY.md.
License
The Keenly application skeleton is released under the Apache License 2.0.