定制 sonypradana/php-mvc 二次开发

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

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

sonypradana/php-mvc

最新稳定版本:v2.1.0

Composer 安装命令:

composer create-project sonypradana/php-mvc

包简介

Very light php mvc, include cli easyer to creat controller view and model quikly

README 文档

README

Total Downloads Latest Stable Version License

🚀 PHP MVC Skeleton

Welcome to php-mvc, a minimal MVC framework designed to streamline your PHP development process. This lightweight framework offers essential features for building web applications while maintaining simplicity and ease of use.

🪐 Feature

  • MVC structure
  • Application Container (power with php-di)
  • Router Support
  • Models builder
  • Query builder
  • CLI command
  • Service Provider and Middleware
  • Templator (template engine)

🎯 Quick Start (4 Steps)

1️⃣ Create Your Project

composer create-project sonypradana/php-mvc project-name

2️⃣ Jump In

cd project-name

3️⃣ Build Assets

npm install
npm run build

4️⃣ Launch!

php cli serve

That's it! Your app is now running. Let's build something awesome.

🎓 Building Your First Feature

We'll create a user profile feature from scratch.

Step 1: Create Database Schema

php cli make:migration profiles
php cli db:create  # Only if database doesn't exist yet

Define your table structure:

// database/migration/<timestamp>_profiles.php
Schema::table('profiles', function (Create $column) {
    $column('user')->varChar(32);
    $column('real_name')->varChar(100);
    $column->primaryKey('user');
})

Run the migration:

php cli migrate

Step 2: Generate Your Model

php cli make:model Profile --table-name profiles

Step 3: Create a Controller

php cli make:controller Profile

Add your logic:

// app/Controller/ProfileController.php
public function index(MyPDO $pdo): Response
{
    return view('profile', [
        'name' => Profile::find('pradana', $pdo)->real_name
    ]);
}

Step 4: Design Your View

php cli make:view profile
// resources/views/profile.template.php
{% extend('base/base.template.php') %}
{% section('title', 'Welcome {{ $name }}') %}

{% section('content') %}
    <h1>Hello, {{ $name }}! 👋</h1>
{% endsection %}

Step 5: Register Your Route

// route/web.php
Router::get('/profile', [ProfileController::class, 'index']);

Done! Visit /profile and see your work in action.

🔥 Pro Move: API with Attributes

Skip the route files entirely. Use attributes for clean, self-documented APIs:

php cli make:services Profile
// app/Services/ProfileServices.php
#[Get('/api/v1/profile')]
#[Name('api.v1.profile')]
#[Middleware([AuthMiddleware::class])]
public function index(MyPDO $pdo): array
{
    $data = Cache::remember('profile', 3600, fn () => [
        'name'   => Profile::find('pradana', $pdo)->real_name,
        'status' => 200,
    ]);

    return JsonResponse($data);
}

then register this route attribute.

Router::register([
    ProfileServices::class,
    // add more class
]);

This automatically creates your route with middleware—no extra configuration needed!

Equivalent traditional route:

Route::get('/api/v1/profile', [ProfileServices::class, 'index'])
    ->name('api.v1.profile')
    ->middleware([AuthMiddleware::class]);

⚡ Performance Optimization

Ready for production? Cache everything:

php cli view:cache    # Cache compiled templates
php cli config:cache  # Cache configuration
php cli route:cache   # Cache all routes

Your app will thank you with blazing-fast response times.

📄 License

Open source under the MIT License. Build something amazing!

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-19