hiveclick / mojavi
轻量级MVC框架,支持MySQL、Postgres和Mongo数据库
Requires
- php: >=5.3.0
- zendframework/zend-http: ^2.5
- zendframework/zend-json: ^2.6
This package is not auto-updated.
Last update: 2024-09-25 23:19:06 UTC
README
Mojavi MVC框架,适用于PHP 5。Mojavi是第一个为PHP 5.3+制作的MVC框架之一,采用面向对象设计。尽管原始的贡献者已经停止了对其的开发,但其中许多概念已经融入到当前的MVC框架中,如Symfony。这个版本包含从其他分支(如Agavi和Symfony)移植的几个文件。我们还完成了原始版本中的一些代码框架。
##新增内容##
我们添加了一些在其他Mojavi实现中不存在的附加组件。以下是它们的列表。
###\Mojavi\Util\StringTools### 用于一般字符串操作的字节串类。包含在Linux终端中着色文本的功能。还包括使字符串适用于MySQL的功能
\Mojavi\Util\StringTools::consolePrompt('Enter your username: ', 'john');
echo \Mojavi\Util\StringTools::consoleColor('There was an error', \Mojavi\Util\StringTools::CONSOLE_COLOR_RED);
\Mojavi\Util\StringTools::getStringBetween('<b><i>Hello World</i></b>', '<b>', '</b>'); // returns <i>Hello World</i>
###\Mojavi\Logging\LoggerManager### 基于Java Log Manager构建的易于使用的日志类。
\Mojavi\Logging\LoggerManager::error(__METHOD__ . " :: About to run some code...");
\Mojavi\Logging\LoggerManager::debug(__METHOD__ . " :: Here is my query: " . $ps->getPreparedStatement());
###\Mojavi\Form\MongoForm### 简单易用的表单,继承Mongo属性并支持Mongo数据库。
class UserForm extends MongoForm {
protected $username;
function getUsername() { return $this->username }
function setUsername($arg0) { $this->username = $arg0; return $this; }
function queryByUsername() {
return parent::query(array('username' => $this->getUsername()), false);
}
}
$user_form = new UserForm();
$user_form->setUsername('john');
$user_form->query();
echo $user_form->getUsername();
###\Mojavi\Form\OrmForm### 简单易用的动作表单。动作表单是一个带有getter和setter的PHP类。它通常由数据库列构建,但可以添加额外的getter/setter以适应通过HTML表单传递的参数。它还可以包含具有业务逻辑的帮助函数。
$_GET['id'] = 1;
$user_form = new UserForm();
$user_form->populate($_GET);
$user_form->query();
if ($user_form->exists()) {
echo $user_form->getUsername();
}
###\Mojavi\Model\BasicModel### 模型的基础类,包含数据库查询。定义了CRUD实现的基本函数,如performQuery()、performQueryAll()、performCount()、performDelete、performInsert()和performUpdate()。
$user_form = new UserForm();
$user_form->populate($_GET);
$user_model = new UserModel();
$user_model->performInsert($user_form);
###\Mojavi\Ps\KeyBasedPreparedStatement### 不使用PDO的强大PreparedStatement类。您只需传递一个包含占位符(如<>)的查询,然后调用其函数即可。
function performQuery(Form $arg0) {
/* @var $arg0 UserForm */
$query = "SELECT * FROM user WHERE username = <<username>>";
$ps = new KeyBasedPreparedStatement($query);
$ps->setString("username", $arg0->getUsername());
echo $ps->getPreparedStatement();
// will return SELECT * FROM user WHERE username = 'tester'
}
###\Mojavi\Util\IntegerEncoder### 将ID编码为8个字符的ID。例如,id=1变为id=z8e7f4d0。ID可以轻松地即时编码和解码。
###\Mojavi\Action\BasicConsoleController### 用于CLI脚本的控制台控制器。此控制器将命令行参数转换为$_GET数组,以便轻松填充表单和模型。
###\Mojavi\Action\BasicRestController### 用于API项目的Rest控制器。扩展了execute()函数,包括executeGet、executePost、executePut和executeDelete。允许文件上传。填充JsonForm以方便显示和分析。
##安装## 您可以通过添加一个名为mojavi的文件夹并将其添加到include_path中来将此项目包含到您的项目中。