farme/framework

The Farme PHP Framework - Built with procedural simplicity

1.0.6 2025-08-16 02:08 UTC

This package is auto-updated.

Last update: 2025-08-16 02:08:34 UTC


README

The PHP Framework That Just Works - Built with procedural simplicity, powered by dynamic CSS generation, and designed for developers who want to build fast without the complexity of modern frameworks.

Features

  • 🧩 Procedural Architecture - Pure PHP functions, no classes required
  • ⚑ Dynamic CSS Generation - Like Tailwind CSS, but generated on-demand
  • πŸ—ΊοΈ Route Auto-Discovery - Routes automatically discovered from controller annotations
  • πŸ—„οΈ ORM-like Database - ActiveRecord-style operations with query builder
  • 🎨 Atomic Components - Reusable UI components built with atomic design principles
  • πŸŽ›οΈ Modern Templates - Beautiful login/register templates with home page styling

Installation

Using Composer (Recommended)

composer create-project farme/project my-app
cd my-app
php console.php serve

Manual Installation

  1. Download the framework and project template
  2. Install dependencies: composer install
  3. Copy .env.example to .env
  4. Start the server: php console.php serve

Quick Start

Create a Controller

/**
 * @route GET /users/{id}
 * @route POST /users
 */
function user_show($params = []) {
    $user = user_find($params['id']);
    return farme_render('users/show', ['user' => $user]);
}

Create a Model

function user_find($id) {
    return farme_find('users', $id);
}

function user_create($data) {
    return farme_insert('users', $data);
}

Create a Template

<h1><?= farme_escape($user['name']) ?></h1>
<p><?= farme_escape($user['email']) ?></p>

Use Form Organism

<?= farme_organism('form', [
    'action' => '/login',
    'method' => 'POST',
    'csrf_token' => $csrf_token,
    'submit_text' => 'Sign In',
    'fields' => [
        'email' => [
            'type' => 'email',
            'placeholder' => 'Email Address',
            'required' => true
        ],
        'password' => [
            'type' => 'password',
            'placeholder' => 'Password',
            'required' => true
        ]
    ]
]) ?>

Console Commands

# Start development server
php console.php serve

# Show registered routes  
php console.php routes

# Create new controller
php console.php make:controller User

# Create new model
php console.php make:model Post

# Run migrations
php console.php migrate

Architecture

Procedural Functions

No classes, no objects. Just functions that do one thing well.

Auto-Discovery

Routes are automatically discovered from function annotations.

Dynamic CSS

Only generates the CSS you actually use, resulting in dramatically smaller bundle sizes.

ORM-like Operations

// Simple queries
$users = user_query()
    |> farme_where('status', 1)
    |> farme_order_by('created_at', 'DESC')
    |> farme_get();

// Complex queries with relationships
$posts = post_query()
    |> farme_join('users', 'posts.user_id', 'users.id')
    |> farme_where('users.status', 1)
    |> farme_get();

Modern UI Components

The framework includes a comprehensive set of UI components:

  • Atoms: Button, Input, Label, Badge, Typography
  • Molecules: Card, Alert, Form Field
  • Organisms: Form, Header
  • Layouts: Default, Minimal, API

All styled with FarmeDynamic CSS utility framework.

Project Structure

farme-framework/           # Core framework package
β”‚   src/Core/             # Framework core components
β”‚   src/Template/         # UI components & layouts
β”‚   webroot/assets/       # Framework assets
β”‚   composer.json         # Framework package

License

The Farme Framework is open-sourced software licensed under the MIT license.