fuxie/utopia-php-framework

此包已被废弃,不再维护。未建议替代包。

一个简单、轻量且先进的PHP框架

v2.0.1 2015-07-17 09:15 UTC

This package is not auto-updated.

Last update: 2015-07-17 09:22:03 UTC


README

Build Status Latest Stable Version Total Downloads License

Utopia框架是一个基于MVC的框架,具有专业和高级Web开发所需的最小必备功能。任何额外的功能,如认证、缓存,都将作为独立模型提供,以保持框架核心的简洁、轻量且易于学习。

截至版本1.0 RC4,Utopia核心仅包含14个文件,少于1500行代码。

示例应用

结构

  • app
    • controllers
      • DefaultController.php
    • models
      • Router.php
    • views
      • app/view/default/index.phtml
  • public
    • styles
    • scripts
    • index.php

public/index.php

require '../vendor/autoload.php';

$utopia = Utopia\Application::getInstance()
    ->setRouter(new Skeleton\Router)
;

$utopia->run();

app/models/Router.php

namespace Skeleton;

class Router extends \Utopia\Router {

    public function init()
    {

    }

    /**
     * @return String
     */
    public function getController()
    {
        return 'default';
    }

    /**
     * @return String
     */
    public function getAction()
    {
        return 'index';
    }

    /**
     * @param string $action
     * @param string $controller
     * @param array $vars
     * @return string
     */
    public function getUrl($action, $controller, array $vars = array())
    {
        return '/?controller=default&action=index';
    }
}

app/controllers/DefaultController.php

use Utopia\Controller;

class DefaultController extends Controller {

    public function init()
    {

        $this->getResponse()
            ->addHeader('X-UA-Compatible', 'IE=Edge');

        $this->getLayout()
            ->setPath('../app/views/layout.phtml')
            ->addStyle('/styles/normalize.css')
            ->setTitle('Utopia Skeleton Application')
        ;
    }

    public function indexAction()
    {
        $this->getView()
            ->setParam('param1', 'value1')
            ->setParam('param2', 'value2')
        ;
    }
}

app/view/default/index.phtml

<?php
/* @var $this Utopia\View */

$param1 = $this->getParam('param1', 'default1');
$param2 = $this->getParam('param2', 'default2');
$param3 = $this->getParam('param3', 'default3');
?>

<h1>Hello World!</h1>

<h2>Example usage of the view parameters</h2>
<ul>
    <li>Param1: <?php echo $param1; ?></li>
    <li>Param2: <?php echo $param2; ?></li>
    <li>Param3: <?php echo $param3; ?></li>
</ul>

系统要求

Utopia框架需要PHP 5.4或更高版本。我们建议尽可能使用最新版本的PHP。

版本控制

为了透明度和对发布周期的洞察,以及努力保持向后兼容性,Utopia PHP框架将在可能的情况下根据语义版本控制指南进行维护。版本将按照以下格式编号

<major>.<minor>.<patch>

有关SemVer的更多信息,请访问 http://semver.org/

Travis CI

Travis CI 是一个持续集成服务,它可以监视GitHub上的新提交,并执行构建应用程序或运行测试等脚本。Utopia-PHP-Framework项目包含一个Travis配置文件 .travis.yml,它将使Travis在您向GitHub推送时运行您的测试。

您需要启用Travis和GitHub之间的集成。有关如何操作的更多信息,请参阅Travis网站。

作者

Eldad Fux

链接

版权和许可

MIT许可(MIT) https://open-source.org.cn/licenses/mit-license.php