Repository navigation
Home
Welcome to the Machinjiri documentation. This wiki takes you from your first request handler through production-oriented framework features. It aims to help you understand not just what to write, but where framework code ends and your application begins.
Version note: The examples target Machinjiri 2.3.2 and PHP 8.4 or newer. APIs and the app skeleton can change between releases. Check the version constraint in your application's
composer.jsonbefore copying a sample.
Follow these pages in order:
- Getting Started — prerequisites, project creation, and your first local run.
- Routing and Controllers — map HTTP requests to application code.
- Views and Responses — render escaped templates or return JSON.
- Database — configure a connection and query records.
Continue with:
- Security and Authentication — validation, CSRF, password hashing, and safe defaults.
- Advanced Features — containers, providers, events, caching, queues, and scheduling.
- CLI and Operations — discover commands and prepare deployments.
- Troubleshooting — diagnose common setup and runtime problems.
Machinjiri is a PHP framework library for building web applications, APIs, and internal tools. It provides reusable components for routing, HTTP, views, database access, authentication, validation, security, cache, queues, events, notifications, and more.
The framework repository is not itself a complete project skeleton. A new application is typically created with the separate machinjiri/installer package. The installer generates application-level files (routes, controllers, views, configuration, and an Artisan entry point); the framework library provides the underlying classes those files use.
| Requirement | Details |
|---|---|
| PHP | ^8.4 |
| Composer | Required to install dependencies |
| Database | Optional; required only for features that persist data |
| Additional services | Redis, LDAP, mail, SMS, or cloud providers are feature-dependent |
Use the environment file and configuration generated for your application as the source of truth. Do not copy environment variable names from another framework or assume every optional integration is installed.
- Start with Getting Started if you are new.
- Each page calls out when code belongs in an application file versus framework internals.
- Examples use the
App\...namespace for app code; confirm your generated project's autoload mapping. - For the exact public API in a specific release, consult the source and your IDE's type information.
- Keep secrets out of source control and never enable debug output in production.
Machinjiri Docs
- Home
- Learn
- Build
-
Tutorials
- Routing
- Controllers and Middleware
- Views and Templates
- Database ORM
- Eloquent Database ORM
- Errors and Exceptions
- Forms and Validation
- Http
- Events and Logging
- Services and DI
- Security
- Authentication
- Caching
- File System
- Date and Time
- Debugging
- Queue and Jobs
- Task Scheduling
- Transport (Mail, SMS)
- LDAP
- Notifications
- Webhooks
- UUID Generations
- Terminal
- Helper Function
- Reference