raahim/pine

最小化PHP框架

安装: 0

依赖: 0

建议: 0

安全: 0

星星: 3

关注者: 2

分支: 0

开放问题: 0

类型:项目

0.x-dev 2024-10-03 09:38 UTC

This package is auto-updated.

Last update: 2024-10-03 09:38:39 UTC


README

关于Pine

Pine是一个最小化的PHP Web框架

重要

这仅仅是一个爱好项目,并且在任何方面都不完整。

如果你正在寻找一个适用于生产的框架,请查看Laravel

这不应该在生产环境中使用。

另一方面,如果你发现任何问题(我认为有很多),请在github上创建一个问题,这样我可以看看。

先决条件

  • PHP 8.2.10
  • Composer 2.6.2
  • Node 20.6.1
  • pnpm 9.1.1

安装

首先克隆仓库

$ git clone https://github.com/raahimfareed/pine.git

安装composer包

$ composer install

可选:如果你打算使用ViteJS,你可以安装所有js包

我们使用pnpm,但你也可以使用任何node的包管理器

$ pnpm install

运行PHP服务器

$ php -S localhost:8000

这将在本地的8000端口运行一个PHP服务器

在新的终端窗口中,启动vite

$ pnpm run dev

路由

你可以在src/routes.php中创建更多的路由

目前,仅支持GET和POST方法,未来将添加更多方法。

视图和Leaf模板

视图基本上是添加了模板功能的HTML文件。

你可以在src/views目录中创建更多视图,格式为filename.leaf.html

所有视图文件都应该有扩展名.leaf.html

在路由中渲染视图时,你需要输入相对于视图文件夹的视图路径,且不带扩展名

例如,以下是一个项目结构(这是完整的项目结构,为了示例,不必要的目录和文件被隐藏了)

.
├── src
│   ├── Controllers
│   │   └── SampleController.php
│   ├── resources
│   │   ├── css
│   │   │   └── index.css
│   │   └── js
│   │       └── index.js
│   ├── routes.php
│   └── views
│       ├── controller.leaf.html
│       └── index.leaf.html
└── vite.config.js

我们有index.leaf.html

我们可以简单地渲染这个

Route::get("/", function () {
    return new View("test");
});

在页面上显示数据

你可以使用View类的可选第二个参数将数据传递到模板中。

看前面的例子,我们会写成这样

Route::get("/", function () {
    return new View("test", ["name" => "Chuck Norris"]);
});

然后你可以在leaf文件中访问它

<h1>{{name}}</h1>

CSS和JS

Pine为CSS和JS分别提供public/style.csspublic/main.js文件

如果你需要这些文件,只需要在leaf文件中添加@css和@js指令即可。

如果你使用Vite,你需要编辑src/resources/js/index.jssrc/resources/css/index.css,因为Vite会自动为你打包js和css,你仍然需要@css和@js来将其添加到HTML中

控制器

裸骨控制器已实现,文档需要更新。

迁移和模型

注意

迁移和模型尚未实现,它们将在未来添加,包括数据库助手。