spoova / mi
PHP 框架
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-15 08:01:43 UTC
README
SPOOVA 框架
Spoova 是一个基于 MVC 架构的 PHP 框架,它使用了一个基于窗口视图模型(WVM)的模式。WVM 是一个 3-逻辑模式,用于确定路由的解析方式。其他功能包括内置的实时服务器、内置的模板引擎、可重用组件、静态资源处理器、ORM(beta)和文件管理器工具。
安装
从 Git 仓库安装
将 spoova 框架项目包克隆或下载到您的设备网络服务器根目录,并将提取的包重命名为 spoova
使用 Composer 安装 #1
在您的本地网络服务器根目录中运行以下命令以生成项目包
composer create-project spoova/mi spoova
使用 Composer 安装 #2
要使用 composer require
在文件夹中创建一个名为 "mi" 的文件,并添加以下命令
<?php require_once "vendor/autoload.php"; spoova\mi\core\Spv::init();
添加 composer.json 文件,并使用以下 json 示例语法,包括所需的 spoova 版本
{ "description": "Spoova Framework", "keywords": ["php framework", "framework", "spoova"], "type": "project", "license": "MIT", "require": { "spoova/mi": "^2.6" }, "require-dev": { "phpunit/phpunit": "^9.5" }, "autoload": { "psr-4": { "spoova\\mi\\": "./" } }, "scripts": { "post-autoload-dump": [ "php mi" ] }, "minimum-stability": "dev" }
运行命令
composer require spoova/mi
创建第一个项目应用
一旦在桌面设备上成功安装了项目包安装程序,在代码编辑器的终端中打开新创建的包,并运行以下命令
php mi repack
一旦重新打包成功,要创建您的新独立项目应用,请运行以下命令,其中
<project_name>
表示您的项目应用名称。
php mi project <project_name>
在项目应用创建过程中,如果启用了网络安装程序,您可以导航到 "<project_name>/install" 页面来配置启动所需的必要参数,但建议使用终端以确保所有必要过程都得到适当的配置。
- 要重新启动或刷新网络上的配置,请选择刷新按钮 "R" 或导航到 "<project_name>/install?refresh" 页面。
- 一旦应用安装完成,可以删除安装页面。
- 一旦配置完成,页面将重定向回主页。
如果您更喜欢从终端配置您的应用,请跳过上面的步骤,并运行以下命令以启动交互式安装过程。确保如果提供了数据库参数,它们都包含在引号内。
php mi config:all
请注意,如果终端无法访问数据库,数据库配置参数测试可能会在终端中返回错误。如果测试配置返回错误,请尝试使用网页浏览器进行连接。
根据情况访问离线或在线项目包文档,了解更多关于如何安装框架和其他 CLI 命令的信息。
项目部署
部署一个生产就绪的应用程序需要使用专门设计的函数,这些函数有助于将静态资源文件(如图像、CSS 和 JavaScript 文件)本地化到它们当前的环境中。
- 需要
domurl()
函数来加载静态资源,这使得 spoova 能够跟踪静态链接。一旦应用程序部署到在线环境中,通过此函数加载的所有相对静态资源都将映射到当前环境。此功能简化了文件在本地和远程环境之间的迁移。然而,如果不使用此函数,开发人员将不得不手动定义它们的静态资源应该如何加载,这可能会很困难。 - 在部署应用程序时,必须使用项目文件夹作为域名根文件夹。目录的安全性由根 .htaccess 文件维护。对该文件的不当修改可能导致应用程序损坏。
配置文件
- 数据库配置文件由
php mi config:all
命令自动配置,但如果有任何错误发生,可以手动在icore/dbconfig.php文件中进行配置。数据库连接参数默认也从该文件加载。记得在提交项目到公共环境时通过运行php mi config:dboffline
移除连接参数,并且如果之前定义了在线参数,也通过运行带有参数设置的php mi config:dbonline
(即命令行中的“-”符号)移除在线参数。这也可以从数据库连接配置文件icore/init中手动完成。 - 其他配置文件可以在同一icore/目录中找到。
- icore/init文件用于初始化应用程序的状态。
- 如果需要,也应将.env文件添加到同一目录。这将使env()函数在需要时自动加载定义的键。
快速提示
- 在不了解如何处理此类文件的情况下,不应修改根.htaccess文件。
- 应避免将未使用的静态资源URL存储到静态资源处理类中,以减少加载时间。
- Spoova使用res/目录来存储全局静态文件。因此,所有全局CSS和JavaScript文件都应放置在res目录中。
- 所有域名和子域名都必须在其内部包含一个icore文件夹,因为该文件夹有助于本地化和(或)在必要时更新默认配置。
- 所有子域文件夹(如果已创建),都应该能够访问全局的res/目录(这可能需要使用符号链接)。
- 避免将类直接放置在core/目录的根目录下。自定义类可以添加到应用程序根目录下的一个自定义单独的文件夹中
- 要使用实时服务器功能,请阅读如何实现它的文档。
- 所有目录和PHP文件都受到保护,而其他文件扩展名则被排除。然而,核心、icore和windows目录受到严格保护。这些目录中的任何文件也继承了其保护。这有助于帮助保护composer.json文件。
注意
- 早先的Spoova主项目包版本之前包含离线文档。从版本2.5开始,文档现在可在spoova.com上找到