geeh/snubbed

生成 snub 类以在您喜欢的 IDE 中为 ZF2 实现代码补全

dev-master 2015-06-10 15:45 UTC

This package is auto-updated.

Last update: 2024-09-24 04:09:57 UTC


README

ALPHA!!!

Snubbed

创建 Zend Framework 2 项目的 Snubs,使 IDE 集成更加紧密

安装

  • "geeh/snubbed": "dev-master" 添加到您的 composer.json 并执行 composer update

运行

  • 使用 php vendor/bin/snub.php <application config> <default controller class> - 您可以留空参数,它将默认为 config/application.config.phpZend\Mvc\Controller\AbstractActionController,这对于基于标准骨架应用的项目来说应该足够好
  • 您将在项目根目录下的 .ide 文件夹中看到创建的 Snubs

使用

控制器

  • 更新您的 use 语句,在控制器中导入基本控制器时使用 Snubbed 控制器代替 - 建议使用 as 关键字使其无缝
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }
}

变为

namespace Application\Controller;

use Snub\SnubbedZendMvcControllerAbstractActionController as AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }
}

现在您将在控制器中拥有代码补全,包括任何控制器插件

Screenshot

视图

Snubbed 还将生成视图 Snubs,在视图中为您提供代码补全,包括您的视图助手和每个视图的视图变量。在 .ide/Snub/View 目录中,您将找到一个 class_map.php 文件,它将告诉您每个视图模板应该使用哪个 Snub。您会发现它很简单,并且您很快就能预测文件名。

要使用视图 Snubs,只需在视图文件(在这种情况下为 view\application\index\index.phtml)的开头包含一个 @var docblock

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel(
            ['form' => new Form()]
        );
    }
}

然后在您的视图(在这种情况下为 view\application\index\index.phtml)中,只需在文件的顶部直接在 <?php 标签下添加以下内容

<?php
/* @var \Snub\View\ApplicationControllerIndexIndexAction $this */
?>

显然,您需要将 Snub 类名替换为适合此视图文件的类名。然后您将在视图中获得代码补全,包括您在操作中设置的视图变量

Screenshot

注意:目前存在一些已知问题阻止变量补全发生。例如,如果您的控制器受 RBAC 或 ZfcUser 身份验证保护,则 Snubbed 将无法从命令行调度控制器,因此无法分析输出。

帮助

目前,代码非常糟糕,未经测试,但实际上是可行的。如果您在使用中发现错误,请 务必 在此处提交问题,以便我可以尝试修复它们。 请务必请务必请务必