定制 baremetalphp/framework 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

baremetalphp/framework

最新稳定版本:0.2.0

Composer 安装命令:

composer require baremetalphp/framework

包简介

A lightweight, educational PHP framework with service container, routing, ORM, and more

README 文档

README

A lightweight, educational PHP framework with service container, routing, ORM, migrations, and more.

License PHP Version Packagist Version Downloads Stars Code Size

Inspired By Laravel Lightweight

Caution

This framework is NOT PRODUCTION READY. This is a limited feature framework intended as a learning tool/playground for developers.

Features

  • 🎯 Service Container - Dependency injection and service management
  • 🛣️ Routing - Clean, simple routing with middleware support
  • 🗄️ ORM - Active Record style ORM with relationships (hasOne, hasMany, belongsTo, belongsToMany)
  • 📊 Migrations - Database version control and schema management
  • 🎨 Views - Simple templating engine with blade-like syntax
  • 🔐 Authentication - Built-in authentication helpers
  • 🧪 Testing - PHPUnit test suite included
  • CLI Tools - Built-in console commands for common tasks

Requirements

  • PHP 8.0+
  • PDO extension
  • SQLite, MySQL, or PostgreSQL support

Quick Start

Creating a New Project

The easiest way to get started is to use the project skeleton:

composer create-project baremetalphp/baremetalphp [your-project]

cd [your-project]

php mini migrate
php mini serve

Note: The framework defaults to a SQLite database, but you can set up a MySQL connection in .env (PostgreSQL is ~95% functional but not fully tested).

Manual Setup

  1. Require the framework:
composer require elliotanderson/phpframework
  1. Set up your application structure:
my-app/
├── app/
│   ├── Http/
│   │   └── Controllers/
│   └── Models/
├── bootstrap/
│   └── app.php
├── config/
│   └── database.php
├── public/
│   └── index.php
├── routes/
│   └── web.php
└── composer.json
  1. Create a route (routes/web.php):
use BareMetalPHP\Routing\Router;
use BareMetalPHP\Http\Response;

return function (Router $router): void {
    $router->get('/', function () {
        return new Response('Hello, World!');
    });
};
  1. Bootstrap your application (bootstrap/app.php):
<?php

require __DIR__ . '/../vendor/autoload.php';

use BareMetalPHP\Application;

$app = new Application(__DIR__ . '/..');
$app->registerProviders([
    BareMetalPHP\Providers\ConfigServiceProvider::class,
    BareMetalPHP\Providers\DatabaseServiceProvider::class,
    BareMetalPHP\Providers\RoutingServiceProvider::class,
    BareMetalPHP\Providers\ViewServiceProvider::class,
]);

return $app;
  1. Create your entry point (public/index.php):
<?php

$app = require __DIR__ . '/../bootstrap/app.php';
$app->run();

Usage Examples

Routing

$router->get('/users', [UserController::class, 'index']);
$router->post('/users', [UserController::class, 'store']);
$router->get('/users/{id}', [UserController::class, 'show']);

Models

use BareMetalPHP\Database\Model;

class User extends Model
{
    protected $table = 'users';
    
    // Relationships
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

// Usage
$user = User::find(1);
$posts = $user->posts;

Database Migrations

use BareMetalPHP\Database\Migration;

class CreateUsersTable extends Migration
{
    public function up($connection)
    {
        $this->createTable($connection, 'users', function ($table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamps();
        });
    }
    
    public function down($connection)
    {
        $this->dropTable($connection, 'users');
    }
}

Views

use BareMetalPHP\View\View;

return View::make('welcome', [
    'name' => 'World'
]);

CLI Commands

The framework includes a CLI tool (mini) with several commands:

  • php mini serve - Start the development server
  • php mini migrate - Run pending migrations
  • php mini migrate:rollback - Rollback the last migration
  • php mini make:controller Name - Create a new controller
  • php mini make:migration name - Create a new migration

Testing

composer test
# or
vendor/bin/phpunit

Documentation

For detailed documentation, visit the framework documentation.

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

统计信息

  • 总下载量: 25
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-06