如何在Mac OS X中安装PHP扩展支持

如何在Mac OS X中安装PHP扩展支持,第1张

安装PHP扩展要求Mac系统已经安装了Xcode环境和命令行开发工具,如果还没安装,可以使用Shell安装。

xcode-select --install

为了扩展管理方便,首先来安装pecl扩展管理器。

cd /usr/lib/php

sudo php install-pear-nozlib.phar

安装Redis、Memcache、Mongo等扩展。

sudo pecl install redis

sudo pecl install memcache

sudo pecl install mongo

sudo pecl install xdebug

将扩展配置添加的php.ini文件中:

extension=memcache.so

extension=mongo.so

extension=redis.so

zend_extension=xdebug.so

安装xcache,从官网下载,解压缩并安装

tar xvf xcache-3.2.0.tar

cd xcache-3.2.0

phpize

。/configure

make

sudo make install

配置XCache

[xcache]

xcache.size = 128M

xcache.var_size = 8M

xcache.var_count = 1

xcache.var_slots = 8K

xcache.var_ttl = 0

xcache.var_maxttl = 0

xcache.var_gc_interval = 300

xcache.optimizer = Off

由于Mac自带的PHP环境是不包括mcrypt扩展的,所以需要下载同版本的php源码包,单独编译这个模块加载。从官网的归档里面找到php5.5.14的源码包,下载:http://php.net/releases/

tar zxvf php-5.5.14.tar.gz

cd php-5.5.14/ext/mcrypt/

phpize。/configure

make

sudo make install

配置ext-mcrypt

extension=mcrypt.so

为了加速,还需要打开opcache。

zend_extension=opcache.so

[opcache]

Determines if Zend OPCache is enabled

opcache.enable=0

Determines if Zend OPCache is enabled for the CLI version of PHP

opcache.enable_cli=0

以上就是在MAC OS X系统中安装PHP扩展的方法,

应用扩展程序会增加您的影响力

通过应用扩展程序,您可以将自定义功能和内容扩展到应用之外,并在用户与其他应用或系统进行交互时将其提供给用户。

您可以创建应用程序扩展以启用特定任务。例如,要让用户从Web浏览器发布到您的社交服务,您可以提供共享扩展。或者,为了让用户了解自己喜欢的团队,您可以提供一个今日窗口小部件,在通知中心显示当前的体育比分。您甚至可以创建一个应用程序扩展,提供用户可以使用的自定义键盘来代替iOS系统键盘。

主要对App Extension进行介绍。请继续往下看:

官方给的说法是:App Extension可以让你扩展你的APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它。翻译的不一定准确,这样说可能会好理解:我们平时看到的Widget、微信和QQ的share等等,都是App Extension,下图是一些例子:

其实就是我们经常看到的Widget,但是Widget只是Today Extension,除了Today Extension,还有很多。

一个支持扩展的系统区域叫做一个extension point(扩展点)。每个扩展点的扩展都有自己独有的使用方法和API。你可以根据你的需求来选择不同的扩展。官方API里面提出了一个名词叫:Host app,我们可以把它理解为宿主的App也就是提供应用扩展界面显示或者功能的App。还有一个container app,我们可以把它理解为容器App,就像上图的微信share extension,容器app就是微信。

扩展和app不同,扩展无法单独上架AppStore。尽管你必须使用个app来包含并且分发你的extension,extension也是一个单独的二进制文件,独立于用于传递和分发的container app。

你可以通过File--->New --->Target来创建Extension,它和其他的target一样,它和你的app project组合成为一个产品。

一个app可以有一个扩展,也可以有多个扩展。最好的创建扩展的方式就是通过Xcode提供的Extension种类选择自己需要的来创建,里面包含了必要的API以及方法实现。

如果你想让用户去使用你的扩展,那么就需要把你的containing app发布到AppStore,当用户安装了你的Containing app,扩展也就安装了。不同的扩展启动的方式也不一样,例如Today Extension,你需要Widget来展示到你的通知中心。扩展也不要乱用,扩展的最佳用户体验从来都是希望用户 *** 作更精简、更快速,并且专注于单个任务。

我们可以在Xcode的File--->New--->Target里面看到不同平台的Extension,包括iOS、watchOS、tvOS、macOS等等。这里主要介绍iOS,主要包括以下几种Extensions:

1.Action Extension:动作扩展,在另一个应用程序的上下文中 *** 作或者查看内容

2.Audio Unit Extension:音频单元扩展

3.Broadcast UI Extension:广播UI 扩展

4.Broadcast Upload Extension:广播上传扩展

5.Call Directory Extension:呼叫目录扩展

6.Content Blocker Extension:内容拦截器扩展

7.Custom Keyboard Extension:键盘扩展,例如第三方的键盘,搜狗输入法,百度输入法等。

8.iMessage Extension:消息的扩展

9.Intents Extension:Intents扩展

10.Intents UI Extension:Intents UI扩展

11.Notification Content Extension:通知内容扩展

12.Notification Service Extension:通知服务扩展

13.Photo Editing Extension:图片编辑扩展,在照片app中编辑照片或者视频

14.Share Extension:分享扩展,发布一个共享网站或者与其他应用共享内容。

15.Shared Links Extension:分享链接扩展

16.Spotlight Index Extension:Spotlight 索引扩展

17.Sticker Pack Extension:贴纸包扩展

18.Today Extension:Today扩展,可以快速获取更新或者在通知中心的近日视图中执行一项快速任务。

应用扩展程序与应用程序不同。虽然您必须使用应用程序来包含和传递扩展,但每个扩展都是一个独立的二进制文件,它独立于用于传递扩展的应用程序而运行。

您可以通过向应用添加新 target 来创建应用扩展程序。与任何Target一样,扩展Target指定组合在应用项目中构建产品的设置和文件。您可以向单个应用添加多个扩展Target(包含一个或多个扩展 的应用 称为 包含应用 )。

开始开发应用扩展程序的最佳方法是使用Xcode为两个平台上的每个扩展点提供的模板之一。每个模板都包含特定于扩展点的实现文件和设置,并生成一个单独的二进制文件,该二进制文件将添加到包含应用程序的包中。

要向用户分发应用扩展程序,请将包含应用程序提交到App Store。当用户安装包含应用程序时,还会安装其包含的扩展程序。

安装应用扩展程序后,用户必须采取措施才能启用它。通常,用户可以在其当前任务的上下文中启用扩展。例如,如果您的扩展程序是“今日”窗口小部件,则用户可以编辑“通知中心”中的“今日”视图以启用扩展程序。在其他情况下,用户可以使用“设置”(在iOS中)或“系统偏好设置”(在macOS中)来启用和管理他们安装的扩展程序。

虽然每种类型的应用扩展程序都支持不同类型的任务,但是大多数扩展程序都有一些用户体验部分。在考虑设计扩展时,了解所选扩展点的用户体验非常重要。从较高的层面来说,所有扩展的最佳用户体验都是快速,简化并专注于单个任务。

用户通过与某些系统提供的用户界面(UI)交互来打开您的应用扩展程序。例如,用户通过激活应用程序中系统提供的“共享”按钮并从显示的列表中选择扩展名来访问“共享”扩展。

虽然大多数应用扩展程序至少提供了一些自定义UI元素,但用户在输入扩展程序之前不会看到自定义用户界面。当用户输入您的扩展程序时,您的自定义用户界面可以帮助向他们展示他们正在转移到新的上下文中。由于用户可以将您的扩展程序与当前应用程序区分开来,因此他们可以欣赏您提供的独特功能。用户将扩展意识视为单独的实体也意味着他们可以识别和删除行为不当或效果不佳的扩展。

为了让用户顺利过渡到您的应用扩展程序,您通常希望平衡自定义设计与与扩展点关联的UI。例如,最好让您的小部件看起来像今天视图中所属的小部件。同样,在您的照片编辑扩展程序中,它可以很好地创建与iOS中的照片协调的UI。

注意

即使您的应用扩展程序未显示任何自定义用户界面(图标除外),用户仍然了解您的扩展程序与当前应用程序不同,因为他们采取了特定 *** 作来激活它。

iOS - Share Extension

1. 在学习 Share Extension 之前,我们需要 先了解一下 iOS的App Extension

2.1 创建Share Extension扩展Target

//注意:扩展不能单独创建,必须依赖于应用工程项目也就是载体,因此如果你还没有创建一个应用工程,先去创建一个

2.1.1、打开项目设置,在TARGETS侧栏地下点击“+”号来创建一个新的Target,如图:

添加Target(这边我已经添加了一个MyAppShare步奏如下)

2.1.2、然后选择”iOS” ->“Application Extension” ->“Share Extension”,点击“Next”。如图:

创建ShareExtension扩展

2.1.3、给扩展起个名字,这里填写了“MyAppShare”,点击“Finish”。如图:

2.1.4、这时候会提示创建一个Scheme,点击“Activate”

那么,到了这里创建Share Extension的工作就算是完成了。接下来可以先进行一下编译运行。这里跟做App开发的时候会稍微有点不一样。因为Extension是需要Host App(宿主应用)来运行的。所以,XCode中会d出界面让我们选择一个iOS的App来运行Extension。如图:

选择宿主应用

这里我选择了XCode建议的应用Safari,然后点击“Run”来进行调试运行。XCode会启动Safari,如图:

我们随便点开一个网页,点击分享按钮就会d出分享菜单,如图:

运行效果图

可以看到刚才建立的Share扩展已经显示在面板上了,如果你没有发现自己的扩展,那么你可以将菜单滑动到最右边,在“更多”选项中激活自己的扩展。如图:

我们点击自己创建的分享项,其d出一个分享窗口。如图:

2.2. 配置Share Extension

接下来我们需要给他一些设置。我们展开XCode左侧栏的MyASppShare目录,找到Info.plist文件。如

我们只需要关注以下几个字段的设置:(更多详细的 Information Property List Key Reference )

Bundle display name

扩展的显示名称,默认跟你的项目名称相同,可以通过修改此字段来控制扩展的显示名称。

NSExtension

扩展描述字段,用于描述扩展的属性、设置等。作为一个扩展项目必须要包含此字段。

NSExtensionAttributes

扩展属性集合字段。用于描述扩展的属性。

NSExtensionActivationRule

激活扩展的规则。默认为字符串“TRUEPREDICATE”,表示在分享菜单中一直显示该扩展。可以将类型改为Dictionary类型,然后添加以下字段:

NSExtensionActivationSupportsAttachmentsWithMaxCount

NSExtensionActivationSupportsAttachmentsWithMinCount

NSExtensionActivationSupportsImageWithMaxCount

NSExtensionActivationSupportsMovieWithMaxCount

NSExtensionActivationSupportsWebPageWithMaxCount

NSExtensionActivationSupportsWebURLWithMaxCount

NSExtensionMainStoryboard

设置主界面的Storyboard,如果不想使用storyboard,也可以使用NSExtensionPrincipalClass指定自定义UIViewController子类名

NSExtensionPointIdentifier

扩展标识,在分享扩展中为:com.apple.share-services

NSExtensionPrincipalClass

自定义UI的类名

NSExtensionActivationSupportsAttachmentsWithMaxCount

附件最多限制,为数值类型。附件包括File、Image和Movie三大类,单一、混选总量不超过指定数量

NSExtensionActivationSupportsAttachmentsWithMinCount

附件最少限制,为数值类型。当设置NSExtensionActivationSupportsAttachmentsWithMaxCount时生效,默认至少选择1个附件,分享菜单中才显示扩展插件图标。

NSExtensionActivationSupportsFileWithMaxCount

文件最多限制,为数值类型。文件泛指除Image/Movie之外的附件,例如【邮件】附件、【语音备忘录】等。单一、混选均不超过指定数量。

NSExtensionActivationSupportsImageWithMaxCount

图片最多限制,为数值类型。单一、混选均不超过指定数量。

NSExtensionActivationSupportsMovieWithMaxCount

视频最多限制,为数值类型。单一、混选均不超过指定数量。

NSExtensionActivationSupportsText

是否支持文本类型,布尔类型,默认不支持。如【备忘录】的分享

NSExtensionActivationSupportsWebURLWithMaxCountWeb

链接最多限制,为数值类型。默认不支持分享超链接,需要自己设置一个数值。

NSExtensionActivationSupportsWebPageWithMaxCount

Web页面最多限制,为数值类型。默认不支持Web页面分享,需要自己设置一个数值。

对于不同的应用里面有可能出现只允许接受某种类型的内容,那么Share Extension就不能一直出现在分享菜单中,因为不同的应用提供的分享内容不一样,这就需要通过设置NSExtensionActivationRule字段来决定Share Extension是否显示。例如,只想接受其他应用分享链接到自己的应用,那么可以通过下面的步骤来设置:

将NSExtensionActivationRule字段类型由String改为Dictionary。

展开NSExtensionActivationRule字段,创建其子项NSExtensionActivationSupportsWebURLWithMaxCount,并设置一个限制数量。

2.3 处理Share Extension中的数据

顶部包含取消和分享两个按钮同时在插件中也包含两个对应方法

- (void)didSelectCancel

- (void)didSelectPost

在这两个方法里面可以进行一些自定义的 *** 作。一般情况下,当用户点击提交按钮的时候,扩展要做的事情就是要把数据取出来,并且放入一个与Containing App(容器程序,尽管苹果开放了Extension,但是在iOS中extension并不能单独存在,要想提交到AppStore,必须将Extension包含在一个App中提交,并且App的实现部分不能为空,这个包含Extension的App就叫Containing app。Extension会随着Containing App的安装而安装,同时随着ContainingApp的卸载而卸载。**)共享的数据介质中(包括NSUserDefault、Sqlite、CoreData),要跟容器程序进行数据交互需要借助AppGroups服务.下一篇我们会讲到如何实现我们的主程序和拓展程序之间的通讯。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11303668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存