Skip to content
Precious Lyson edited this page Nov 11, 2026 · 2 revisions

Machinjiri Framework

Machinjiri PHP Composer Version License

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.json before copying a sample.

Choose your path

New to Machinjiri?

Follow these pages in order:

  1. Getting Started — prerequisites, project creation, and your first local run.
  2. Routing and Controllers — map HTTP requests to application code.
  3. Views and Responses — render escaped templates or return JSON.
  4. Database — configure a connection and query records.

Building a real application?

Continue with:

  1. Security and Authentication — validation, CSRF, password hashing, and safe defaults.
  2. Advanced Features — containers, providers, events, caching, queues, and scheduling.
  3. CLI and Operations — discover commands and prepare deployments.
  4. Troubleshooting — diagnose common setup and runtime problems.

What is Machinjiri?

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.

Requirements at a glance

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.

How to use this wiki

  • 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.

Project resources

Clone this wiki locally