PHP框架入门推荐:Laravel和CodeIgniter。搭建开发环境:安装PHP环境管理器(XAMPP或Laragon)和PHP Composer。创建Laravel项目:使用Composer或Artisan命令行工具。创建CodeIgniter项目:克隆存储库并安装依赖项。实战案例:创建留言板,Laravel和CodeIgniter提供了路由、控制器和视图的实现指南。
PHP框架可以帮助您快速且高效地构建强大且可维护的Web应用程序。对于初学者来说,选择合适的框架非常重要。
对于初学者,推荐以下两个PHP框架:
在开始使用PHP框架之前,您需要搭建开发环境。以下是如何在Windows系统上设置开发环境:
bash composer global require laravel/installer codeigniter4/framework
要创建一个Laravel项目:
bash composer create-project laravel/laravel your-project-name
bash laravel new your-project-name
要创建一个CodeIgniter项目:
bash git clone https://github.com/codeigniter4/CodeIgniter4.git project-name
bash cd project-name composer install
bash cd your-project-name php artisan serve
bash cd project-name php spark serve
Laravel:
在routes/web.php
中添加一个路由:
Route::get('/guestbook', 'GuestbookController@index'); Route::post('/guestbook', 'GuestbookController@store');
创建GuestbookController.php
控制器:
namespace AppHttpControllers; use IlluminateHttpRequest; class GuestbookController extends Controller { public function index() { // 从数据库中获取消息 $messages = Message::all(); return view('guestbook', ['messages' => $messages]); } public function store(Request $request) { // 验证和存储来自表单的数据 $request->validate([ 'name' => 'required', 'message' => 'required', ]); Message::create($request->all()); return redirect()->back(); } }
创建resources/views/guestbook.blade.php
视图:
@extends('layouts.app') @section('content') <h1>留言板</h1> @foreach ($messages as $message) <p><strong>{{ $message->name }}</strong></p> <p>{{ $message->message }}</p> <hr> @endforeach <form method="POST" action="{{ route('guestbook.store') }}"> @csrf <label for="name">姓名:</label> <input id="name" type="text" name="name"> <label for="message">留言:</label> <textarea id="message" name="message"></textarea> <button type="submit">提交</button> </form> @endsection
CodeIgniter:
在routes.php
中添加一个路由组:
$routes->group('guestbook', ['namespace' => 'AppControllers'], function($routes) { $routes->get('', 'Guestbook::index'); $routes->post('', 'Guestbook::store'); });
创建AppControllersGuestbook.php
控制器:
<?php namespace AppControllers; use CodeIgniterI18nTime; use CodeIgniterModel; class Guestbook extends BaseController { public function index() { $messages = model('MessageModel')->findAll(); return view('guestbook', ['messages' => $messages]); } public function store() { $validation = $this->validate([ 'name' => 'required', 'message' => 'required', ]); if (!$validation) { return redirect()->back()->withInput()->with('errors', $this->validator->getErrors()); } $message = new Model([ 'name' => $this->request->getPost('name'), 'message' => $this->request->getPost('message'), 'created_at' => Time::now(), ]); if (model('MessageModel')->save($message)) { return redirect()->back(); } else { return redirect()->back()->withInput()->with('errors', ['general' => '保存留言失败']); } } }
创建app/Views/guestbook.php
视图:
<!DOCTYPE html> <html> <head> <title>留言板</title> </head> <body> <h1>留言板</h1> <?php foreach ($messages as $message): ?> <p><strong><?= $message['name'] ?></strong></p> <p><?= $message['message'] ?></p> <hr> <?php endforeach; ?> <form method="POST" action="<?= base_url('guestbook') ?>"> <label for="name">姓名:</label> <input id="name" type="text" name="name"> <label for="message">留言:</label> <textarea id="message" name="message"></textarea> <button type="submit">提交</button> </form> </body> </html>