PHPackages                             huanyuwong/handscube - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. huanyuwong/handscube

ActiveProject[Framework](/categories/framework)

huanyuwong/handscube
====================

Handscube framework

v0.1.2(7y ago)020MITPHP

Since Dec 6Pushed 7y agoCompare

[ Source](https://github.com/huanyuwong/handscube)[ Packagist](https://packagist.org/packages/huanyuwong/handscube)[ Docs](https://github.com/huanyuwong/handscube)[ RSS](/packages/huanyuwong-handscube/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Handsubce
=========

[](#handsubce)

[![](https://camo.githubusercontent.com/8ecb6f234e2ba7bcc6599ff5cec6069c19cd63b76ea297f537c6923074dff8f5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f72656c656173652d302e302e312d627269676874677265656e2e737667)](https://github.com/huanyuwong/handscube/releases) [![](https://camo.githubusercontent.com/daf5811154bb26a4a81c6eec1aff0150890a52b0ac4acb5f5fcf22c6e95fe13f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f776e6c6f61642d31302e314d2d626c75652e737667)](https://packagist.org/packages/huanyuwong/handscube) [![](https://camo.githubusercontent.com/31efe251173e651b21de40422f2dea12e08b4124ae96d2e25b21da0fab4195d6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e6365732d4d49542d6f72616e67652e737667)](https://packagist.org/packages/huanyuwong/handscube) ![](https://camo.githubusercontent.com/79ff8d9870a083ec0e0198ca0c107f167bb4439cbc51c66c2916c515b7e4c352/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6d6d69742d7374617475732f6261646765732f736869656c64732f6d61737465722f356434616238366231623564646662336334613730613730626431393933326335323630336238632e737667) [![](https://camo.githubusercontent.com/2360c0e0fb9738845c04bceb121a98b470949b6a0731fac04f0ea8334a140ad0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374796c652d706c61737469632d677265656e2e7376673f6c6f676f3d6170707665796f72267374796c653d706c6173746963)](https://packagist.org/packages/huanyuwong/handscube)

安装
==

[](#安装)

使用composer安装。

```
Composer create-project huanyuanwong/handscube myProject

```

> Handscube运行环境须&gt;=php7.0

配置.env文件
========

[](#配置env文件)

如果没有.env文件，将自带的.env.example修改为.env文件，并配置里面的信息，比如配置数据库。

使用
==

[](#使用)

使用Handscube自带的开发环境服务器，进入项目根目录运行如下命令:

```
php cube serve

```

> Handscube开发服务器默认运行在localhost的8000端口。

如需改变端口或者使用指定php.ini文件配置可以添加需要的配置项，例如：

```
php cube serve --p 8001 --c '/usr/local/etc/php.ini'

```

> 如果使用自带服务器报数据库相关错误时，请检查相关php文件配置。

路由
--

[](#路由)

Handscube的路由配置在根目录`routes/web.php`中。

配置一个Get请求的路由：

```
Route::get('/', 'index@welcome');
```

该路由会自动解析到`index`模块中`index`控制器中的`welcome`方法。

你也可以为路由命名：

```
Route::get('/', 'index@welcome')->name('welcome')
```

这样在后续的操作中你可以使用`Route::route('welcome') `来访问它。

### 带参数的路由

[](#带参数的路由)

---

你也可以为路由添加参数，就像这样:

```
Route::get("/admin/{user}/{option}", "admin.index@user")->name("admin");
```

也可以用冒号代替大括号来表示该处为路由参数：

```
Route::get('/admin/:user/:option','admin.index@user);
```

该例中带参数的路由将会被自动解析到`admin`模块下的`index`控制器下的`user`方法中。

假设这是你的`IndexController`，你可以这样访问这些请求参数:

```
	//IndexController.php
    public function user($user, $option){
		echo $user . '-' . $option;
	}
```

如果命名路由中含有参数，可以在`Route::route`的第二个参数中指定参数的值：

```
$url = Route::route('admin','[pars1, pars2]')
```

### 路由前缀

[](#路由前缀)

---

如果你要访问的多个路由都有同样的前缀，你可以使用`Route::prefix`:

```
//匹配形如 /admin/connect | /admin/test/1/testname
Route::prefix('/admin', function () {
    Route::get('/test/:id/:name', 'admin.index@test');
    Route::get('/connect', 'admin.index@connect');
});
```

### 资源路由

[](#资源路由)

---

如果要使用RESTful风格的资源路由，可以像这样建立一个资源路由:

```
Route::resource('article', 'article');
```

### 其它路由使用示例

[](#其它路由使用示例)

---

```
//注册一个post请求的路由
Route::post('/post','index@put');
//注册一个请求方法为any类型的路由
Route::any('/connect', 'index@connect');
//自定注册请求方法类型的路由
Route::match(["get", "post"], "/testmatch", "index@match");
```

控制器
===

[](#控制器)

Handscube的控制器默认在`app/controllers`下，`index`模块的控制器就放在`app/controllers`下，其它模块的控制器在相应的文件夹内，比如`admin`模块下`index`控制器在`app/controllers/admin/`目录中。

假设你定义了如下一个路由：

```
Route::get('/user/{id}','user@show')
```

现在我们在`app/controllers`创建一个`UserController`

```
