1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/pandao-slimore

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Slimore

Фреймворк Slimore полностью основан на (H)MVC и построен на базе Slim PHP Framework v2.6.x (https://github.com/slimphp/Slim).

Установка

Требуется PHP версии 5.4.0 или выше.

composer.json:

{
    "require": {
        "slimore/slimore": "*"
    }
}

Установка:

$ composer install

Структура директорий

Один модуль:

/
    app/
        controllers/
        models/
        views/
    configs/
        routes.php
        settings.php
    public/
        .htaccess
        index.php
    vendor/
        ...
    composer.json

Несколько модулей:

/
    app/
        frontend/
            controllers/
            models/
            views/
        backend/
            controllers/
            models/
            views/
        api/
            controllers/
            models/
            views/
        ...
    configs/
        routes.php
        settings.php
    public/
        .htaccess
        index.php
    vendor/
        ...
    composer.json

Использование

.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

index.php:

<?php

define('APP_PATH',  realpath(__DIR__ . '/../app') . DIRECTORY_SEPARATOR);
define('BASE_URL',  str_replace('index.php', '', $_SERVER['PHP_SELF']));

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

$app = new \Slimore\Mvc\Application([
    'debug'           => true,
    'path'            => APP_PATH,
    'baseURL'         => BASE_URL,
    //'modules'       => ['home', 'admin', 'api'], // Multi-Modules
    //'defaultModule' => 'home',
    'autoloads'     => [
        APP_PATH . 'path/xx/xx'
    ]
]);

//$app->dbConnection(); // if using database

$app->get("/", function() {
    echo "Hello world!";
});

// Routes

//$app->get('/news', 'NewsController:read');
// or $app->get('/news', controller('index', 'read'));

//$app->get('/news', 'Home\Controllers\NewsController:read');
// or $app->get('/news', controller('news', 'read', 'Home\Controllers\\'));

//$app->post('/news', 'Home\Controllers\NewsController:create');
//$app->put('/news/:id', 'Home\Controllers\NewsController:update');
//$app->delete('/news/:id', 'Home\Controllers\NewsController:delete');

// or
/*
$app->moduleNamespace('Home\Controllers\\', function($namespace, $app) {
    //echo $namespace;

    $ctl = 'IndexController';

    //$app->get('/', $namespace . $ctl . ':index');
    //$app->get('/news/:id', $namespace . $ctl . ':index');

    $app->controller('index', function($controller, $app, $namespace) {

         //echo $controller . ', ' . $namespace;
        //$app->get('/news/:id', $namespace . $controller . ':index');

    }, $namespace);
});*/

// Auto routes => /:action, /:controller/:action, /:module/:controller/:action
$app->autoRoute();

$app->run();

Модель:

<?php

class Article extends \Slimore\Mvc\Model
{
    //protected  $table      = 'you_table_name';
    //protected  $primaryKey = 'your_id';
}

Использование Eloquent ORM / Model: http://laravel.com/docs/5.0/eloquent

Вид:

<?php
// использование php-операторов
?>
<title><?=$title?></title>
<?=$var?>
<?php if ($exp) : ?>
<?php else : ?>
<?php endif; ?>

Контроллер:

<?php

// Multi-module
//namesapce Frontend\Controllers;

use \Slimore\Database\Manager as DB;

class IndexController extends \Slimore\Mvc\Controller
{
    public function index()
    {
        // Использование модели, аналогично Laravel
        $article = Article::find(1);

        // query builder
        $news = $this->db->table('news')
                         ->select(['nid', 'cid', 'title', 'content', 'add_time'])
                         ->where(['cid' => 0])
                         ->orderBy('nid', 'DESC')
                         ->get();
        //print_r($news);

        // Базовое использование базы данных, аналогично Laravel
        $results = DB::select('select * from users where id = ?', [1]);

        // Slim

*Примечание: в тексте запроса присутствуют фрагменты кода на языке PHP, но они не были переведены.* **Методы приложения**

    // запрос
    $get = $this->request->get();

    // ответ
    //$this->response->headers->set('Content-Type', 'application/json');

    // представление
    $this->view->setData(array(
        'color' => 'red',
        'size' => 'medium'
    ));

     // рендеринг views/index.php
    $this->render('index', [
        'title'   => 'Hello world!' . $article->title,
        'article' => $article
    ]);

    // вывод json
    /*$this->json([
        'status' => 200,
        'message' => 'xxxxxx',
        'data' => $article
    ]);*/
}

Использование Slim: http://docs.slimframework.com/

Зависимости

Компоненты

  • Captcha
  • Debug\Simpler
  • Functions
  • FileCache
  • Http\Client
  • Image\Gd
  • Log\Writer
  • Pagination
  • Uploader
  • ...

Изменения

Журналы изменений

Лицензия

Лицензия MIT: https://github.com/slimore/slimore/blob/master/LICENSE.

Авторские права (c) 2015 Pandao

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Slimore — это полноценный (H)MVC-фреймворк, основанный на Slim. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/pandao-slimore.git
git@api.gitlife.ru:oschina-mirror/pandao-slimore.git
oschina-mirror
pandao-slimore
pandao-slimore
master