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
🚀 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
其他信息
- 授权协议: MIT
- 更新时间: 2023-10-19