cosmicmedia / cosmicframework

此包已被弃用且不再维护。未建议替代包。
此包的最新版本(dev-master)没有提供许可证信息。

CosmicMedia MVC框架,包含通用的MVC实现和CosmicMedia API实现

dev-master 2019-02-28 22:41 UTC

This package is not auto-updated.

Last update: 2020-08-14 05:41:18 UTC


README

实现

MVC

CosmicFramework中的MVC实现基于3个类,"Database"(数据库),"Controller"(控制器)和"View"(视图)。这3个类共同工作,最终目标是渲染用户页面。

每个对象的函数

  • Database(即模型)

    Database是一个用于连接和查询配置数据库的简单对象。在CosmicFramework中,要创建一个模型,将此数据库集成到从类中获取数据的类中,你需要创建一个扩展数据库的类。然后你可以将此模型包含在控制器中,以便访问你定义的方法来获取数据。

  • View

    View包含要渲染的模板、渲染器(plates)以及传递给模板的数据。它在功能上是独立的,但控制器持有一个用于渲染。

  • Controller

    Controller包含渲染视图对象背后的逻辑,例如运行包含的模型逻辑、身份验证等。在其使用过程中,你会创建一个扩展Controller的类,并实现抽象"logic"方法的逻辑。这个逻辑方法在调用Controller->render()时会自动运行。

示例实现

test.php

    require_once __DIR__ . '/../vendor/autoload.php';

    use CosmicFramework\MVC\Database;

    Database::init("host", "database", "root", "");

    // Create a new instance of the TestController
    $test_controller = new TestController();
    // Add a view to the controller
    $test_controller->addView(new View("test_view", __DIR__));

    // render() first runs the controllers logic() method, then renders the view
    $test_controller->render();

_test_controller.php

    use CosmicFramework\MVC\Controller;

    class TestController extends Controller {
        // This logic is ran when calling the controller's render() method
        public function logic() {
            require(__DIR__ . "/test_model.php");
            $test_model = new TestModel();
            $data = $test_model->GetData();
            $this->view->setItems($data);
        }
    }

_test_model.php

    use CosmicFramework\MVC\Database;

    class TestModel extends Database {
        public function GetData() {
            return self::query("SELECT * FROM data");
        }
    }

API

CosmicAccounts

CosmicAccounts(CosmicFramework\API\CosmicAccounts)是处理CosmicAccounts API的静态辅助类。它有2个函数

o AuthenticateUser($conf_key) - 接受一个CosmicAccounts conf密钥,检查其有效性,并返回与密钥关联的权限
o AuthRedirect($public_key) - 重定向到带有用户public_key的CosmicAccounts身份验证重定向URL