corvo/router

dev-master 2014-05-16 17:11 UTC

This package is not auto-updated.

Last update: 2024-10-02 04:23:45 UTC


README

##CorvoRoutes 简单地组织 Laravel 项目的方法。

如果您想贡献,请,分支或打开一个 问题

如果您有任何问题,给我发一个 tweet,或者加入 Laraveles(西班牙语的 Laravel)。

##如何使用

###安装 将 "corvo/router" 添加到您的 composer.json 的 requires 并运行 composer update

require {
    ...,
    "corvo/router": "dev-master"
}

注意:如果您在您的部分中使用命名空间,请将 app/webpsr-0psr-4 一起添加到 composer.json

autoload {
    "classmap": [
      ...
    ],
    "psr-0": {
      "": "app/web"
    }
}

Corvo\Routes\Providers\CorvoRoutesServiceProvider 添加到您的 app/config/app.php 文件

'providers' => array(
  'Illuminate\Foundation\Providers\ArtisanServiceProvider',
  ...
  'Corvo\Routes\Providers\CorvoRoutesServiceProvider'
)

现在,使用 artsian 创建部分的最简单方法是,在您的应用程序根目录中运行以下命令

php artsian corvo:section [section_name]

这将创建一个名为 [section_name] 的部分。例如,让我们创建一个博客部分

php artsian corvo:section Blog

以及一个管理员部分

php artsian corvo:section Admin

在您的 proyect/app 文件夹中查看,并打开名为 web 的新文件夹,这包含所有部分,现在我们有了博客和管理员部分。

您必须有类似以下内容

|--app
|--|--web
|--|--|--Blog
|--|--|--|--Config
|--|--|--|--Controllers
|--|--|--|--Library
|--|--|--|--Models
|--|--|--|--routes.php
|--|--|--|--Views
|--|--|--Admin
|--|--|--|--Config
|--|--|--|--Controllers
|--|--|--|--Library
|--|--|--|--Models
|--|--|--|--routes.php
|--|--|--|--Views

###命名空间 现在我们有了部分,让我们创建视图

/* app/web/Blog/Views/index.blade.php */

<h1>My Awsome Blog!</h1>

@foreach($posts as $post)
  <div>
    <h2>{{ $post->title }}</h2>
    <p>{{ $post->content }}</p>
  </div>
@endforeach

为了访问此视图,我们可以使用与部分相同的命名空间。

在 Blog/routes.php 文件中添加

/* app/web/Blog/routes.php */

Route::group(array('prefix' => 'blog'), function ()
{
  Route::get('/', function()
  {
    $posts = Blog\Models\Post::all();
    return View::make('Blog::index', ['posts' => $posts]);
  });
});

Blog 命名空间已经添加,我们可以使用它来引用所有博客视图。

以相同的方式在我们的管理员视图中,以及所有部分

/* app/web/Admin/routes.php */

Route::group(array('prefix' => 'admin'), function ()
{
  Route::get('/users', function()
  {
    $users = Admin\Models\Users::all();
    return View::make('Admin::users', ['users' => $users]);
  });
});

要访问配置文件,方式相同

/* app/web/Blog/Config/general.php */

return array(
  'posts_per_page' => 10
);
/* app/web/Blog/Controllers/HomeController.php */

public function getIndex()
{
  $postsPerPage = Config::('Blog::general.posts_per_page');
  $posts = Blog\Models\Post::take($postsPerPage)->get();
  return View::make('Blog::index', ['posts' => $posts]);
}

##运行 要运行此,我们需要加载 CorvoRoutes 类。要做到这一点,在 proyect/app/routes.php 文件中添加以下行

/* app/routes.php */

CorvoRoutes::load();

就这样。

##高级使用

###配置 您可以更改 CorvoRoutes 的某些功能,如部分的路径、路由文件名或视图文件夹的名称。

在您的 proyect/app/config 文件夹中创建一个名为 corvoroutes 的新配置文件

|--app
|--|--config
|--|--|--corvoroutes.php

在此文件中,您可以更改一个或多个功能。

选项

例如,如果您想将视图文件夹 /Views 改为 /Templates,只需添加此选项

/* proyect/app/config/corvoroutes.php */

return array(
    'views_folder' => 'Templates'
);

并更改 base_path,您不喜欢 proyect/app/web,认为 proyect/content 更好

/* proyect/app/config/corvoroutes.php */

return array(
    'base_path'    => base_path().'/content',
    'views_folder' => 'Templates'
);

注意:如果您更改 base_path 并且在 proyect/app/web 中创建了先前的部分,您必须将其移动到新的 base_path 或使用 alternative_paths 添加

###替代路径 要在其他位置添加部分,例如 proyect/content/Foro/proyect/Users/,您有两种方法

  1. 使用配置文件
return array(
    'alternative_paths' => array(
        base_path().'/content/Foro',
        base_path().'/Users'
    )
);
  1. 使用 alternativePaths() 方法
/* proyect/app/routes.php */

CorvoRoutes::alternativePaths(array(
    base_path().'/content/Foro',
    base_path().'/Users'
))
->load();

每个 "替代路径" 都像 proyect/app/web 部分一样工作。