label305 / auja
Auja是一个用于与Auja JavaScript前端通信的Web服务开发套件。Auja是一个易于使用、易于实现的用于管理数据的后台界面。
Requires
- php: >=5.4.0
Requires (Dev)
- henrikbjorn/phpspec-code-coverage: ~0.2
- phpspec/phpspec: ~2.0
- satooshi/php-coveralls: ~0.6
- dev-master
- v3.0.0-alpha19
- v3.0.0-alpha18
- v3.0.0-alpha17
- v3.0.0-alpha16
- v3.0.0-alpha15
- v3.0.0-alpha14
- v3.0.0-alpha13
- v3.0.0-alpha12
- v3.0.0-alpha11
- v3.0.0-alpha10
- v3.0.0-alpha9
- v3.0.0-alpha8
- v3.0.0-alpha7
- v3.0.0-alpha6
- v3.0.0-alpha5
- v3.0.0-alpha4
- v3.0.0-alpha3
- v3.0.0-alpha2
- v3.0.0-alpha1
- dev-feature_external_link
- dev-dev
This package is not auto-updated.
Last update: 2020-01-24 15:30:26 UTC
README
已废弃
此仓库将不再维护,并将于2017年开始删除。
关于
Auja是一个易于使用、易于实现的后台界面。它提供了一个简单直观的方式让您查看和操作数据,让您可以专注于更重要的事情。Auja设计为既用户友好又开发者友好,通过提供工具,您可以在几分钟内设置后台界面。
Auja JavaScript前端提供图形用户界面。为了确定其内容,它依赖于您实现的JSON Web服务。这个仓库反过来,提供面向对象的方法,从PHP应用程序中提供这些JSON消息。
相关仓库
- Auja - 前端JavaScript GUI
- Auja for Laravel - Auja在Laravel框架中的实现
设置
Auja-PHP可在Packagist上找到。通过运行以下命令将Auja-PHP添加到您的依赖中
composer require label305/auja:v3.0.0-alpha5
用法
Auja使用三种主要类型
每个这些类都实现了__toString()
方法,该方法返回有效的JSON,由Auja JavaScript实现接受。
主要
Label305\Auja\Main\Main
类用于定义Auja的主视图。以下示例将告诉Auja创建一个注销按钮,并添加一个单个模型项。它还添加了一个身份验证表单
$main = new Main(); $main->setTitle('My Application'); $main->setColor(Main::COLOR_MAIN, '#22bcb9'); /* Add a logout button. */ $logoutButton = new Button(); $logoutButton ->setTitle($logoutButton) ->setTarget('#logout'); $main->addButton($logoutButton); /* Add a model. */ $item = new Item(); $item ->setTitle('Club') ->setIcon('tower') ->setTarget('/clubs/menu'); $menu->addMenuItem($item); /* Add an authentication form. */ $authenticationForm = new Form(); $authenticationForm ->setAction('#login') ->setMethod('POST'); /* Add a username text field. */ $usernameTextFormItem = new TextFormItem(); $usernameTextFormItem ->setName('username') ->setLabel('Username'); $authenticationForm->addFormItem($usernameTextFormItem); /* Add a password field. */ $passwordFormItem = new PasswordFormItem(); $passwordFormItem ->setName('password') ->setLabel('Password'); $result->addFormItem($passwordFormItem); /* Add a submit button. */ $submitFormItem = new SubmitFormItem(); $submitFormItem->setText('Login'); $result->addFormItem($submitFormItem); $main->setAuthenticationForm($authenticationForm); return $main;
菜单
Label305\Auja\Menu\Menu
类用于定义Auja中的菜单。以下示例为Club
模型创建了一个菜单
$menu = new Menu(); /* Add a link item to add a club. */ $addMenuItem = new LinkMenuItem(); $addMenuItem ->setName('Add') ->setTarget('/clubs/create'); $menu->addMenuItem($addMenuItem); /* Add a spacer. */ $spacerMenuItem = new SpacerMenuItem(); $spacerMenuItem->setName('Clubs'); $menu->addMenuItem($spacerMenuItem); /* Add a placeholder for showing a list of clubs. */ $resourceMenuItem = new ResourceMenuItem(); $resourceMenuItem->setTarget('/clubs'); $menu->addMenuItem($resourceMenuItem); return $menu;
如您所见,使用了三种MenuItem
类型
LinkMenuItem
- 表示指向另一个菜单或页面的简单链接;SpacerMenuItem
- 表示简单的文本标签;ResourceMenuItem
- 表示资源集合。
ResourceMenuItem
是实际要显示的项目占位符。当其目标URL被调用时,Auja期望一个包含条目列表的Label305\Auja\Menu\Resource
对象
$resource = new Resource(); /* Add Manchester United to the list. */ $item = new LinkMenuItem(); $item ->setName('Manchester United') ->setTarget('/clubs/1'); $resource->addItem($item); /* Add FC Bayern Munchen to the list. */ $item = new LinkMenuItem(); $item ->setName('FC Bayern München') ->setTarget('/clubs/2'); $resource->addItem($item); /* Provide a url to the next page of clubs. */ $resource->setNextPageUrl('/clubs?page=2'); return $resource;
页面
由Label305\Auja\Page\Page
定义的页面表示用于查看和修改单个条目的面板。以下示例为Club
模型创建了一个编辑页面
/* Retrieve the Club instance. */ $club = ...; $page = new Page(); /* Add a header with a delete button. */ $pageHeader = new PageHeader(); $pageHeader->setText('Edit Club'); $deleteButton = new Button(); $deleteButton ->setText('Delete') ->setConfirmationMessage('Are you sure?') ->setTarget('/clubs/1') ->setMethod('DELETE'); $pageHeader->addButton($deleteButton); $page->addPageComponent($pageHeader); /* Add the form. */ $form = new Form(); $form ->setAction('/clubs/1') ->setMethod('PUT'); /* Add a name text field. */ $nameFormItem = new TextFormItem(); $nameFormItem ->setName('name') ->setLabel('Name') ->setValue($club->getName()); $form->addFormItem($nameFormItem); /* Add a submit button. */ $submitFormItem = new SubmitFormItem(); $submitFormItem->setText('Submit'); $form->addFormItem($submitFormItem); $form->addPageComponent($form); return $page;
开发
要开始为Auja-PHP开发,请执行以下操作
- 克隆项目;
- 运行
composer install
。
要运行PhpSpec,请执行bin/phpspec run
。
如果您想在本地运行代码覆盖率,需要执行以下操作:
composer require henrikbjorn/phpspec-code-coverage:~0.2 satooshi/php-coveralls:~0.6
printf "\nextensions:\n - PhpSpec\\\\Extension\CodeCoverageExtension" >> phpspec.yml
请勿提交这些更改!
许可协议
版权所有 2014 Label305 B.V.
遵循Apache License 2.0(“许可协议”);
除非遵守许可协议,否则不得使用此文件。
您可以在以下位置获取许可协议副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可协议下分发的软件
按“原样”分发,不提供任何明示或暗示的保证或条件。
有关许可协议下权限和限制的具体语言,请参阅许可协议。
版权所有 2014 Label305 B.V.
遵循Apache License 2.0(“许可协议”);