bdelamatre/delamatre-zend

该包的最新版本(dev-master)没有可用的许可证信息。

Byron DeLaMatre 创建的 ZF2 扩展

dev-master 2017-07-14 22:14 UTC

This package is not auto-updated.

Last update: 2020-01-10 16:06:00 UTC


README

一个预配置了以下内容的 Zend Framework 2 模块,以便为您的 Zend Framework 2 项目提供:

  • 身份验证
    • ZfcUser (ZfcUserDoctrineOrm)
  • 数据库
    • Doctrine ORM
  • 前端
    • 使用以下内容进行 Bower 编译
      • jQuery
      • Twitter Bootstrap
      • Font Awesome
    • Assetic
    • (可选)Typekit
  • 日志记录
    • Monolog
  • Zend Framework 扩展
    • Mvc\Controller
    • 表单
    • 导航
    • 视图
  • 各种其他集成
    • ElFinder
    • GetResponse360
    • Google
    • Lavacharts
    • Mashape
    • Maxmind / GeoIP2
    • PhantomJs
    • SalesForce

关于

一组预配置的库、模块、资源、视图助手等,可用于快速启动您的 Zend Framework 2 项目。这对于任何希望使用 Zend Framework2 + DoctrineOrm + Twitter Bootstrap + jQuery 构建全栈应用程序的人来说将非常有用。如果您正在尝试将上述任何库集成到自己的 Zend Framework 2 项目中,您可能也会发现这个项目很有用作为参考。

入门

在 Packagist 上查看

要开始,请将以下内容添加到您的 composer.json 中的 require 部分,然后更新 composer。

"bdelamatre/delamatre-zend": "dev-master",

并将以下脚本部分添加到您的 composer.json 中

"scripts": {
    "post-install-cmd": "DelamatreZend\\Builder\\Builder::postInstall",
    "post-update-cmd": "DelamatreZend\\Builder\\Builder::postUpdate"
}

然后您需要将以下模块添加到您的 ZF2 application.config.php 文件中。

	'EdpModuleLayouts', 	#required by DelamatreZend
	'TwbBundle', 		#required by DelamatreZend
	'DoctrineModule', 	#required by DelamatreZend
	'DoctrineORMModule', 	#required by DelamatreZend
	'ZfcBase', 	#required by DelamatreZend
	'ZfcUser', 	#required by DelamatreZend
	'ZfcUserDoctrineORM', 	#required by DelamatreZend
	'AsseticBundle', 	#required by DelamatreZend
	'DelamatreZend',	#DelamatreZend

项目结构

以下项目结构适用于您的 Zend Framework 2 项目,并模仿了 ZF2 Skeleton Application 目录结构。根据需要,您可以修改此结构。

  • config/ - 包含 application.config.php
  • config/autoload/ - 包含遵循 .local.php 和 .global.php 标准的配置文件。
  • config/autoload/dist/ - 包含所有配置分发文件,您可以包括并配置它们。
  • data/cache/ - 各种文件系统缓存的存储位置
  • data/DoctrineORMModule/ - 实体代理和其他 Doctrine 缓存对象的存储位置
  • data/log/ - 应用程序日志的存储位置
  • data/log/screenshots/ - 截图缓存图像(PhantomJS)
  • module/ - Zend Framework 2 模块
  • public/ - 公共文件
  • public/assets/ - 所有前端库和 Assetic 编译文件的存储位置。
  • vendor/ - Composer 库

配置文件

本项目的主要目标是在众多类似项目中管理配置文件。因此,有许多不同的配置文件和特性允许与它们配置的类进行交互。无需复制或修改默认配置文件

捆绑的配置文件

  • assetic.*.php - 配置 Assetic
  • doctrine.*.php - 配置 Doctrine ORM
  • ext.filemanager.*.php - 配置elFinder文件管理器集成
  • ext.getresponse.*.php - 配置GetResponse360集成
  • ext.google.*.php - 配置Google集成
  • ext.mashape.*.php -- 配置Mashape集成
  • ext.maxmind.*.php -- 配置Maxmind (Geoip2)集成
  • ext.phantomjs.*.php -- 配置PhantomJS集成
  • ext.salesforce.*.php -- 配置SalesForce集成
  • ext.typekit.*.php -- 配置Typekit集成
  • myapp.*.php -- 配置应用程序信息
  • navigation.*.php -- 配置导航菜单
  • session.*.php -- 配置PHP会话
  • user.*.php -- 配置身份验证 / ZfCUser

配置扩展

  • .global.php - 一个全局配置文件
  • .local.php - 一个本地配置文件,覆盖*.global.php文件。
  • .dist - 配置文件的分发副本。

默认配置文件

为了启动您的项目,所有配置都有一个默认配置,该配置包含在config/目录下的此模块中。默认情况下,所有ext.*.php配置文件都被禁用,其余的配置与默认项目结构一起正常工作。

分发配置文件

对于每个默认配置文件,在config/autoload/dist/下都有一个相应的.global.php*.dist**和/或.local.php*.dist**文件。构建者会将所有这些分发文件复制到您的项目中的config/autoload/dist/。这些分发文件包含您可能想要修改以用于项目的值。要使用它们,只需将分发文件复制/粘贴到config/autoload/中,删除.dist扩展名,并根据需要修改。

注意:所需的.local.php配置文件(如database.local.php)将由构建者复制到/config/autoload/中。

myapp.*.php

与其它配置文件不同,myapp配置文件不配置任何特定的PHP类库。相反,这里使用的值用于描述一般、环境和其它应用程序特定设置。您应该使用myapp.global.php配置您的通用应用设置,并使用myapp.local.php配置您的开发环境设置。

开发环境下的myapp.development.local.php配置示例

return array(
    'myapp' => array(
        'environment' => array(
            'type' => ENVIRONMENT_TYPE_DEVELOPMENT,
            'notes' => 'to change to production, set [myapp][environment][type] to ENVIRONMENT_TYPE_PRODUCTION',
            'display_errors' => true,
            'display_exceptions' => true,
        ),
        'baseurl' => 'https://',
    ),

);

身份验证

ZfcUser (ZfcUserDoctrineOrm)

使用zf-commons/zfc-userzf-commons/zfc-user-doctrine-orm进行集成。在composer install/update时,自动加载配置分发文件将被复制到config/autoload/dist/user.local.php.dist。默认情况下无需修改,但您可以将此文件移动到config/autoload/user.local.php并根据需要修改。

已创建一个默认的用户实体组织实体,并作为用户配置中的默认实体相关联。其他配置包括在数据库中不存在用户时创建默认用户。

默认用户名/密码为root/root1234

要覆盖默认用户/组织实体,只需扩展现有实体并更新user_entity_class和organization_entity_class用户配置选项。

在user.config.global.php中修改以下行

/**
 * User Model Entity Class
 *
 * Name of Entity class to use. Useful for using your own entity class
 * instead of the default one provided. Default is ZfcUser\Entity\User.
 * The entity class should implement ZfcUser\Entity\UserInterface
 */
'user_entity_class' => '$yourEntityName',

/**
 * Organization Model Entity Class
 */
'organization_entity_class' => $yourEntityName',

内置控制器操作

与所有内置的ZfCUser操作相同。您可以在/user/login进行登录,在/user/logout进行注销。查看ZfcUser以获取其他操作和辅助工具。

需要身份验证

您可以使用内置的ZfcUser方法和在Module.php中添加要求,以实现应用中大量代码块需要身份验证。您也可以使用此简单方法对任何控制器操作要求身份验证

//require authentication
$this->requireAuthentication();

可选地传递一个需要组数的数组

//require authentication
$this->requireAuthentication(array('admin')); //must be an admin

控制器助手

当扩展AbstractActionController.php或应用User特性时,以下助手方法将在您的控制器中可用

  • getUserClass() - 在user_entity_class中定义的用户类
  • getOrganizationClass() - 在organization_entity_class中定义的组织类
  • getZfcUserAuthentication() - zfcUserAuthentication插件
  • getUserCount() - 数据库中用户数量
  • getUserService() - 从服务管理器获取zfcuser_user_service
  • createDefaultUser($userConfig) - 创建在用户配置中定义的默认用户
  • requireAuthentication($allowedGroups) - 对指定的组进行身份验证。如果未登录,则重定向到登录页面。否则抛出异常。

构建器

一个简单的PHP类,包含静态函数,用作composer钩子,无需命令行。如果您尚未配置composer.json以使用构建器,请在composer.json中添加以下内容

"scripts": {
    "post-install-cmd": "DelamatreZend\\Builder\\Builder::postInstall",
    "post-update-cmd": "DelamatreZend\\Builder\\Builder::postUpdate"
}

构建器默认执行以下操作

  • 设置所需的项目目录和权限
  • 将配置分发文件复制到config/autoload/dist/和所需的本地文件config/autoload/
  • 将公共资产复制到public/assets/

除了将钩子添加到composer.json之外,无需执行任何操作即可使用构建器。

数据库

Doctrine ORM

使用doctrine/doctrine-moduledoctrine/doctrine-orm-module进行集成。在composer install/update时,自动加载配置分发文件将被复制到config/autoload/dist/doctrine.local.php.dist,并且(如果不存在)也将复制到/config/autoload/database.local.php。在此处插入您的数据库连接信息。

将DelamatreZend\Mvc\Controller\DoctrineIntegration特性应用于DelamatreZend\Mvc\Controller\AbstractActionController。此特性允许在控制器中轻松调用以下功能

  • getEntityManager() - 获取默认实体管理器
  • createQueryBuilder() - 创建查询构建器实例
  • quoteSQL() - 为配置的数据库引用对象

默认的AbstractEntity为继承它的任何实体提供额外的功能。这些包括:魔法设置器/获取器、实体到数组和数组到实体函数等。

定义实体所在位置

建议将实体嵌入到您的模块中(例如,module/Application),以便您的模块是自给自足的。为了告诉Doctrine ORM您的实体位于模块中,您需要修改doctrine配置以包含存储实体的路径。再次建议,为了使您的模块自给自足,建议将以下内容添加到模块的module.config.php中。

将以下内容添加到module.config.php

//doctrine settings
'doctrine' => array(
	//Doctrine Entity settings
	'driver' => array(
		// defines an annotation driver with two paths, and names it `my_annotation_driver`
		'default_driver' => array(
			'paths' => array(
				__DIR__ . '/../src/$moduleName/Entity',
			),
		),
		// default metadata driver, aggregates all other drivers into a single one.
		// Override `orm_default` only if you know what you're doing
		'orm_default' => array(
			'drivers' => array(
				// register `my_annotation_driver` for any entity under namespace `My\Namespace`
				'$moduleName\Entity' => 'default_driver',
			)
		)
	),
),

doctrine.*.php

doctrine.local.php 是最重要的配置文件之一,因为它包含了您本地数据库连接信息。除非您需要添加多个数据库连接或修改实体位置,否则没有必要配置 doctrine.global.php。

前端

Bower 编译

bower.json 定义了jquery/bootstrap/font awesome项目的所需库。这些资源已经包含在 src/bower_components 中,但您可以在需要时运行 bower 和重新获取。

Assetic

使用 widmogrod/zf2-assetic-module 进行集成。在 composer install/update 时,自动加载配置分发文件将被复制到 config/autoload/dist/assetic.global.php.dist 和 config/autoload/dist/assetic.local.php.dist。如果不存在,则设置 config/autoload/assetic.local.php。要修改全局 Assetic 配置,请将文件重命名为 assetic.global.php 并按需修改。

默认情况下,所有公共资源都被假定为属于 public/assets/ 目录,Assetic 使用包含的 bower 资源来自动创建此目录中的 base_css.css 和 base_js.js 文件。这些基本文件包含 jQuery、Bootstrap 和 Font-Awesome 的编译和压缩代码。

fix-me:您需要将 bower_components 的内容复制到 public/assets/ 中,以便图像资源对 Bootstrap 和 Font-Awesome 可用。

Assetic 配置为自动将其资源添加到 ZF2 的样式和脚本对象中。要输出 Assetic 文件,您只需使用 headStyle() 和 headScript() 视图辅助函数。请参考 layout/layout.phtml 以获取工作示例。

assetic.*.php

Assetic 配置就绪,可直接使用。但是,当修改使用 Assetic 编译的源代码(即开发中)时,您可能希望启用 buildOnRequest 选项来自动编译基本文件。您可以使用 assetic.local.php.dist 文件来完成此操作。

视图 / 模板

  • view/error/404.phtml - 默认 404 错误页面。
  • view/error/index.phtml - 简单的默认错误页面。
  • view/layout/ajax.phtml - AJAX 渲染策略的替代布局。
  • view/layout/layout.phtml - 简单的默认布局。
  • view/layout/components/* - 可用作部分的各种组件。
  • view/layout/navigation/menu.phtml - ZF2 导航的巨量菜单渲染器。
  • view/zfc-user/user/*.phtml - zfcuser 默认视图模板的覆盖。

Zend 框架扩展

表单

各种自定义表单元素。

Mvc\Controller

一个可扩展的 AbstractActionController,它提供额外的控制器帮助程序和集成。

  • Doctrine 集成
  • elFinder 文件管理器集成
  • GetResponse360 集成
  • Google Analytics 集成
  • Lavacharts 集成
  • Maxmind Geoip2 集成
  • Salesforce 集成
  • 身份验证集成

只需通过 DelamatreZend\Mvc\Controller\AbstractActionController 扩展控制器或根据需要应用任何可用的 trait 即可。

导航

在 composer install/update 时,自动加载配置分发文件将被复制到 config/autoload/navigation.global.php.dist。将此重命名为 navigation.global.php 并按需修改。

此扩展允许使用Doctrine实体动态生成导航菜单。已添加了额外的导航选项。

  • entity - 要使用的doctrine实体
  • entity_route - 从实体构建链接的ZF2路由。这不必与正常路由相同。
  • depth - 构建此菜单项时递归的深度。
  • col - 如果使用大型菜单(yamm),这将输出多少列。

查看

与任何开发者的库一样,已添加了一组自定义视图助手。