php框架入门推荐:laravel和codeigniter。搭建开发环境:安装php环境管理器(xampp或laragon)和php composer。创建laravel项目:使用composer或artisan命令行工具。创建codeigniter项目:克隆存储库并安装依赖项。实战案例:创建留言板,laravel和codeigniter提供了路由、控制器和视图的实现指南。
PHP框架入门推荐:搭建开发环境教程
简介
PHP框架可以帮助您快速且高效地构建强大且可维护的Web应用程序。对于初学者来说,选择合适的框架非常重要。
推荐的PHP框架
对于初学者,推荐以下两个PHP框架:
- Laravel: 一个健壮且流行的框架,初学者使用起来相对容易。
- CodeIgniter: 一个轻量且简单的框架,非常适合小型项目。
搭建开发环境
在开始使用PHP框架之前,您需要搭建开发环境。以下是如何在Windows系统上设置开发环境:
立即学习“PHP免费学习笔记(深入)”;
- 安装[XAMPP](https://www.apachefriends.org/download.html)或[Laragon](https://laragon.org/)等PHP环境管理器。
- 安装PHP Composer:bash composer global require laravel/installer codeigniter4/framework
创建Laravel项目
要创建一个Laravel项目:
- 使用Composer:bash composer create-project laravel/laravel your-project-name
- 使用Artisan命令行工具:bash laravel new your-project-name
创建CodeIgniter项目
要创建一个CodeIgniter项目:
- 克隆CodeIgniter存储库:bash git clone https://github.com/codeigniter4/CodeIgniter4.git project-name
- 安装依赖项:bash cd project-name composer install
运行项目
- Laravel: bash cd your-project-name php artisan serve
- CodeIgniter: 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>