openbuildings/services-manager

此包已被弃用且不再维护。没有建议的替代包。

该模块的目的是简化管理应用程序可能依赖的各种外部服务

安装: 163,810

依赖项: 0

建议者: 1

安全: 0

星标: 8

关注者: 15

分支: 1

开放问题: 0

类型:kohana-module

0.5.5 2018-04-04 13:27 UTC

README

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version

该模块的目的是简化管理应用程序可能依赖的各种外部服务。每个服务都由一个易于访问的单个类管理,该类负责所有必要的PHP或JavaScript加载

设置

目前有2种类型的服务

  • JavaScript服务 - 它们需要加载JavaScript文件。要使用这些服务,您必须将这些辅助工具放置在适当的位置
<html>
<head>
	<title>Site</title>
	...
	<!-- This needs to be inside your head tag -->
	<?php echo Service::all_heads(); ?>
</head>
<body>
	...
	<!-- This needs to be at the very end of the body, just before the closing body tag -->
	<?php echo Service::all_bodies(); ?>
</body>
</html>
  • PHP服务 - 它们处理自己的事务。

每个服务都有自己的配置,您可以在services-manager.php文件中查看默认配置

使用方法

一些服务有辅助方法可以在您的代码中全局使用。一般原则是,如果由于某些原因服务被禁用,这些方法将静默失败。

例如,这将渲染一个包含当前URL分享选项的addthis工具箱,但如果服务被禁用,它将返回一个空字符串,因此您的站点不应受服务禁用的影响并继续运行

<?php echo Service::factory('addthis')->toolbox() ?>

为了确保在服务被禁用的情况下您的特定代码不会执行,您可以使用初始化方法

<?php if (Service::factory('addthis')->initialized()): ?>
	<!-- Your custom addthis code goes here -->
<?php endif; ?>

您还可以根据jam_auth中的角色禁用每个服务。只需使用'disabled-for-role' => '{somerole}'配置参数,或使用'enabled-for-role' => '{somerole}'仅允许某些角色。

有一些内置服务可用

Addthis

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • api-key : (string)您的addthis API密钥
  • load-user-email : (bool)如果将此设置为TRUE,则加载当前用户电子邮件,您可以使用:user-email在addthis-config中访问它
  • addthis-config : (array)这将用于设置addthis使用的javascript变量addthis_config

辅助工具:

  • toolbox($url = NULL, $attributes = NULL) : 生成一个div addthis工具箱,url默认为初始请求的url

Exceptionalio

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • api-key : (string)您的exceptionalio API密钥
  • use-auth : (bool) 获取当前用户ID和电子邮件,并将其设置为异常的定制参数

辅助工具:

  • log(Exception $exception) : 将异常发送到exceptionalio

Googleanalytics

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • api-key : (string)您的google analytics API密钥
  • header : (bool) 将其设置为FALSE将GA代码放置在页面底部

Kissinsights

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • notifications-for-role : (string)这用于将kissmetrics事件替换为HTML5通知,这样您就可以清楚地看到哪些事件被触发以及何时触发,而无需访问kissmetrics服务
  • api-file : (字符串) kissinsights 的文件 - 他们还没有 API 密钥,但文件名是唯一的

Kissmetrics

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • api-key : (字符串) Kissmetrics 的您的 API 密钥
  • use-auth : (布尔值) 使用当前登录用户,在 PHP API 中通过电子邮件识别用户
  • php-api : (布尔值) 启用 php-api。如果设置为 FALSE,则所有 php 方法将静默失败,KM 类将根本不会加载。
  • more : (字符串) 在 kissmetrics 包含之后放置的自定义 JavaScript,放置在脚本标签之后

辅助工具:

  • record($event) : 使用 PHP API 记录事件
  • identify($identification) : 使用 PHP API 识别用户
  • set($properties) : 使用 PHP API 设置当前用户的属性
  • queue($event, $event2 ...) : 将事件添加到 JavaScript API 队列。如果是正常页面渲染,它将在 kissmetrics JavaScript 包含代码之后放置它们,如果是 AJAX 请求,将直接渲染包含指定事件的脚本标签
  • is_async() : 查找是否为异步请求(AJAX)

使用队列辅助方法的示例。这将将它们添加到队列中并在标题中渲染,或者直接在这里使用脚本标签渲染它们

<?php echo Service::factory('kissmetrics')->queue(
  array('trackClick', '.add-to-favourites', 'clicked on add to favourites in company profile'),
  array('trackClick', '.remove-from-favourites', 'clicked on remove from favourites in company profile')
) ?>

Mailchimp

配置:

  • enabled : (bool)
  • disabled-for-role : (string)
  • enabled-for-role : (string)
  • api-key : (字符串) Mailchimp 的您的 API 密钥
  • lists : (数组) 键值对列表别名 => 列表 ID。如果设置了这些,您将能够使用列表别名而不是实际列表 ID,例如 listSubscribe('newsletter') 将导致 listSubscribe('')

辅助工具:

此服务使用 Mailchimp API 版本 1.3,所有方法都代理到 API 本身。因此,您可以直接使用服务对象调用任何 API 方法。以 list 开头的方法将尝试使用配置中指定的 ID。示例

<?php Service::factory('mailchimp')->lists->subscribe('newsletter', 'me@example.com'); ?>

许可证

版权所有 (c) 2012-2013,OpenBuildings Ltd. 由 Ivan Kerin、Yasen Yanev 和 Haralan Dobrev 开发,作为 clippings.com 的一部分

根据 BSD-3-Clause 许可证,请参阅 LICENSE 文件。