Skip to main content

Why Noor — A Single-File PHP Framework for Shared Hosting

· 3 min read
Noor Team
Framework Maintainer

Every PHP developer eventually faces the same deployment reality: shared hosting. cPanel, Plesk, or a basic LAMP stack with FTP access and nothing else. No SSH. No Composer. No Node.js. No chance of running artisan or bin/console.

Modern PHP frameworks assume a modern environment. Laravel needs Composer, vendor/, and often Redis or a queue worker. Symfony is similar. Even Slim requires Composer and an autoloader. On shared hosting, you're lucky to get PHP 7.4 with mod_rewrite.

So you reach for WordPress. Or you hand-roll everything with require_once spaghetti. Neither is satisfying.

The Gap

Between the monolithic giants (Laravel, Symfony) and the "raw PHP" approach, there's a gap. A gap for a framework that gives you structure without infrastructure.

I wanted:

  • Routing — clean URL patterns, not if ($_GET['page']) chains
  • Templating — layouts, sections, escaping, not <?php echo htmlspecialchars(...) everywhere
  • Database — a query builder, not raw PDO verbosity
  • Auth — sessions, bcrypt, CSRF, not reinventing password hashing
  • Validation — declarative rules, not if (!filter_var(...)) blocks

And I wanted it all in a single file you could FTP to a shared host in 2026.

Design Constraints

Noor was built around non-negotiable constraints:

  1. One file. noor.php is the framework. Copy it and go. No vendor/, no composer.json, no autoloader config.
  2. No CLI. Everything must work through the web server. No code generation, no cache clears, no CLI commands.
  3. PHP 7.4+. The vast majority of shared hosts still run PHP 7.4 or 8.0. PHP 8.1+ features were off limits.
  4. Drop-in deployment. Upload via FTP, point your domain at the directory, and it works. No post-deploy steps.
  5. Familiar ergonomics. If you know Laravel, you know Noor. Same routing patterns, same template directives, same query builder chain.

What It Is Not

Noor is not trying to compete with Laravel or Symfony. It doesn't have queues, events, a service container, Eloquent ORM, Horizon, Telescope, or any of the ecosystem tools that make Laravel great for large applications.

Noor is for the other 80% of PHP projects: the company website, the internal tool, the MVP, the client project on a $5/month shared host.

What's Next

The framework is stable enough for production use on simple to moderate projects. PostgreSQL and SQLite support work. The query builder handles joins, subqueries, and transactions. The template engine supports full layout inheritance.

Future improvements could include Redis session support, a minimal caching layer, and better error diagnostics — but only if they don't compromise the single-file, zero-dependency constraint.

If you've been looking for something between WordPress and a full Laravel deployment, Noor might be what you need. Drop it in and start building.