flodi / appcelerate
PHP 应用框架
This package is not auto-updated.
Last update: 2024-09-28 20:03:46 UTC
README
描述
此包是一个 PHP 元框架。元框架是因为它使用现有的组件来实现其结果,它们是:
- Alto Router (https://altorouter.com)
- Tiny But Strong (http://www.tinybutstrong.com)
- https://github.com/vlucas/phpdotenv
- https://github.com/Seldaek/monolog
- https://github.com/daniel-zahariev/php-aws-ses
- https://github.com/nuovo/spreadsheet-reader
- https://github.com/graphp/graph
- https://github.com/graphp/graphviz
- https://github.com/graphp/algorithms
- https://github.com/PHPOffice/PhpSpreadsheet
它使用脚手架和命名约定来实现声明式应用程序结构,BPM 用于工作流程模块,路由和命名约定用于处理应用程序安全性和支持声明式应用程序结构,模板将代码与展示完全分离。
许可证
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
版权(C)2007 自由软件基金会,Inc. https://fsf.org/ 任何人都可以复制和分发本许可证文件的准确副本,但不得更改。
Preamble
GNU 通用公共许可证是一种适用于软件和其他类型作品的自由、版权许可证。
大多数软件和其他实用作品的许可证都是为了剥夺您分享和更改作品自由而设计的。相比之下,GNU 通用公共许可证旨在保证您分享和更改程序所有版本的自由,以确保它始终对所有用户都是免费的软件。我们,自由软件基金会,使用 GNU 通用公共许可证为我们的大多数软件;它也适用于其作者以这种方式发布的任何其他作品。您也可以将其应用于您的程序。
当我们提到自由软件时,我们指的是自由,而不是价格。我们的通用公共许可证旨在确保您有权分发自由软件的副本(如果您愿意,还可以对其收费),您收到源代码或可以获取它,您可以更改软件或将其用于新的自由程序中,并且您知道您可以这样做。
为了保护您的权利,我们需要阻止其他人剥夺您这些权利或要求您放弃这些权利。因此,如果您分发软件副本或对其进行修改,您将承担某些责任:尊重他人的自由。
例如,如果您免费或收费分发此类程序的副本,您必须将您所收到的相同自由转交给接收者。您必须确保他们也收到或可以获取源代码。您还必须向他们展示这些条款,以便他们知道自己的权利。
使用 GNU GPL 的开发者通过两个步骤来保护您的权利:(1)对软件主张版权,(2)向您提供本许可证,以授予您合法的复制、分发和/或修改权限。
为了开发者和作者的防护,GPL 明确说明,对此免费软件没有保证。为了用户和作者的利益,GPL 要求修改版本被标记为已更改,这样他们的问题就不会错误地归咎于先前版本的作者。
某些设备设计成禁止用户安装或运行其内部的软件修改版本,尽管制造商可以这样做。这与保护用户更改软件自由的目标根本不相容。这种滥用行为的系统模式出现在个人产品领域,这正是最不可接受的地方。因此,我们设计了本版本的GPL,禁止这些产品的这种做法。如果这种问题在其他领域大量出现,我们将准备在GPL的未来版本中根据需要扩展这项规定,以保护用户的自由。
最后,每个程序都不断受到软件专利的威胁。各国不应允许专利限制通用计算机上软件的开发和使用,但在那些允许专利的情况下,我们希望避免专利应用于自由软件可能带来的特殊危险,即使自由软件变得实际上专有。为此,GPL确保专利不能用来使程序变得非自由。
以下是对复制、分发和修改的精确条款和条件。
TERMS AND CONDITIONS
- 定义。
"本许可证"指的是GNU通用公共许可证的第3版。
"版权"还指适用于其他类型作品的类似版权法,如半导体掩模。
"程序"指的是在本许可证下许可的任何可版权作品。每个许可证持有人都被称为"您"。"许可证持有人"和"接受者"可以是个人或组织。
“修改”一个作品意味着复制或以需要版权许可的方式修改作品的所有或部分,但不是制作一个精确的副本。由此产生的作品被称为“修改版本”或“基于”较早作品的作品。
"受保护的作品"指未修改的程序或基于程序的作品。
"传播"一个作品意味着对其进行任何操作,这些操作在没有许可的情况下会使您根据适用的版权法直接或间接承担责任,但执行计算机上的程序或修改私人副本除外。传播包括复制、分发(是否修改)、向公众提供以及在有些国家其他活动。
"传递"一个作品意味着任何使其他方能够制作或接收副本的传播方式。仅通过计算机网络与用户互动,不转移副本,不算传递。
交互式用户界面应显示“适当的法律通知”,在它包括一个方便且突出可见的功能,该功能(1)显示适当的版权声明,并且(2)告知用户该作品没有保证(除提供保证的情况外),许可证持有人可以在本许可证下传递该作品,以及如何查看本许可证的副本。如果界面显示用户命令或选项列表,如菜单,列表中的一个突出项符合这一标准。
- 源代码。
一个作品“源代码”是指修改作品的优先形式。"目标代码"是指作品的非源代码形式。
"标准接口"是指由认可的标准机构定义的官方标准,或者,在为特定编程语言指定的接口的情况下,是指在那种语言中广泛使用的接口。
可执行作品的"系统库"包括除整个作品之外的所有内容,包括(a)在正常包装主要组件的形式中包括在内,但不是该主要组件的一部分,并且(b)仅用于使工作与该主要组件一起使用,或实现一个可供公众以源代码形式获得的“标准接口”。在此上下文中,“主要组件”是指特定操作系统中(如果有)运行可执行作品的主要基本组件(内核、窗口系统等),或用于生成工作的编译器,或用于运行它的目标代码解释器。
对于以目标代码形式工作的“对应源代码”意味着生成、安装(对于可执行工作)以及运行目标代码和修改该工作所需的所有源代码,包括控制这些活动的脚本。然而,它不包括该工作的系统库,或用于执行这些活动但不是工作一部分的一般用途工具或通常可用的免费程序。例如,对应源代码包括与工作源文件相关联的接口定义文件,以及为工作专门设计要求的共享库和动态链接子程序的源代码,例如通过这些子程序与其他工作部分之间的紧密数据通信或控制流。
对应源代码不需要包括用户可以从对应源代码的其他部分自动重新生成的内容。
以源代码形式的工作的对应源代码就是该工作本身。
- 基本权限。
本许可证授予的所有权利均授予程序的版权期限,并且在满足所述条件的情况下是不可撤销的。本许可证明确确认您无限运行未经修改的程序的权利。运行受覆盖工作的输出仅在输出根据其内容构成受覆盖工作时才受本许可证的保护。本许可证承认您根据版权法享有公平使用或其他等效权利。
您可以在您的许可证其他条款仍然有效的情况下制作、运行和传播您不传递的受覆盖工作,不受条件限制。您可以将受覆盖工作传递给他人,仅限于让他们为您独家修改,或为您提供运行这些工作的设施,只要您遵守本许可证关于传递您不控制版权的所有材料的条款。因此为您制作或运行受覆盖工作的必须仅代表您,在您的指导和控制下进行,并且禁止他们在与您的关系的范围之外制作您版权材料的任何副本。
在以下条件下,才允许在其它情况下传递。不允许再许可;第10节使它成为不必要的。
- 保护用户的法律权利免受反规避法的影响。
根据任何适用法律,任何受覆盖工作均不应被视为符合1996年12月20日通过的WIPO版权条约第11条义务或类似法律规定的有效技术措施的组成部分,或禁止或限制规避此类措施的法律。
当您传递受覆盖工作时,您放弃对根据本许可证在受覆盖工作方面行使权利而实施的规避技术措施的法律权力,并且您否认以限制工作操作或修改作为执行对工作用户的法律权利以禁止规避技术措施的手段的意图。
- 传递文字副本。
您可以以您接收到的任何媒介传递程序的源代码的文字副本,只要您在每份副本上显著和适当地公布适当的版权声明;保持所有声明完整,说明本许可证和根据第7节添加的任何非许可条款适用于代码;保持所有关于无任何保证的通知完整;并且向所有收件人提供本许可证和程序的副本。
您可以就您传递的每份副本收取任何价格或不收取价格,并且您可以就付费支持或保修保护提供。
- 传递修改过的源代码版本。
您可以在第4节的条款下以源代码的形式传递基于程序或从程序产生的修改的工作,只要您还满足所有这些条件
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
将受版权保护的作品与其他独立且不依赖的作品组合,这些作品在本质上不是受版权保护作品的扩展,并且它们没有与之结合以形成更大的程序,或者不在存储或分发媒体的卷中,这种组合称为“汇集”。如果汇集及其产生的版权不是用来限制汇集用户超越个别作品所允许的访问或法律权利,则称为“汇集”。将受版权保护的作品包含在汇集中不会使本许可证适用于汇集的其他部分。
- 传输非源代码形式。
您可以在第4章和第5章的条款下以目标代码形式传输受版权保护的作品,前提是您还必须按照本许可证的条款传输机器可读的对应源代码,以下方式之一:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
目标代码的可分离部分,其源代码作为系统库被排除在对应源代码之外,不需要在传输目标代码作品时包含在内。
"用户产品"可以是以下两种情况之一:(1)“消费产品”,即任何通常用于个人、家庭或家庭用途的有形个人财产,或者(2)设计或销售用于并入住宅的任何东西。在确定产品是否为消费产品时,可疑的情况应有利于覆盖。对于特定用户收到的特定产品,“通常使用”指的是该类产品典型的或常见的使用,而不管特定用户的状况或特定用户实际使用或预期使用该产品的方式如何。除非这些使用代表产品唯一重要的使用方式,否则产品是消费产品,不管产品是否有重大的商业、工业或非消费用途。
"用户产品"的"安装信息"是指安装和执行受版权保护作品修改版本所需的任何方法、程序、授权密钥或其他信息,这些修改版本是从其对应源代码的修改版本中获得的。这些信息必须足以确保修改后的目标代码的持续运行在任何情况下都不会因为修改而被阻止或干扰。
如果您在本节中通过、与或专门用于在用户产品中使用的方式传输目标代码作品,并且传输作为一项交易的一部分发生,其中用户产品占有权和使用权永久或固定期限(无论交易如何定性)转让给接受者,则本节下传输的对应源代码必须附带安装信息。但如果您或任何第三方都没有保留在用户产品上安装修改后的目标代码的能力(例如,该作品已安装在ROM中),则不适用此要求。
提供安装信息的要求不包括继续提供对已修改或安装的作品或其中包含的用户产品的支持服务、保修或更新的要求。当修改本身对网络的运行产生实质性不利影响或违反网络通信的规则和协议时,可能会拒绝访问网络。
根据本节传输的对应源代码和提供的安装信息必须以公开文档化的格式(并且以源代码形式的实现可供公众获得),并且必须不要求特殊的密码或密钥来解包、阅读或复制。
- 附加条款。
"附加许可"是指通过免除本许可条款的部分或全部条件来补充本许可条款的术语。适用于整个程序的附加许可应被视为包含在本许可中,在适用法律允许的范围内。如果附加许可仅适用于程序的部分,则该部分可以在那些许可下单独使用,但整个程序仍受本许可的约束,不考虑附加许可。
当您传达受覆盖作品的副本时,您可以选择从该副本或其任何部分中移除任何附加许可。(在某些情况下,当您修改作品时,附加许可可能被写成要求自行移除。)您可以在您添加到受覆盖作品中的材料上放置附加许可,对于这些材料,您拥有或可以给予适当的版权许可。
尽管本许可的任何其他条款可能与此相反,对于您添加到覆盖作品中的材料,如果获得该材料版权持有者的授权,您可以(如果获得该材料版权持有者的授权)用本许可的条款补充本许可的条款。
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
所有其他非许可的附加条款被视为第10条意义上的“进一步限制”。如果您收到的程序或其任何部分包含一项声明,说明它受本许可的约束,并附带一项进一步限制的条款,您可以将该条款删除。如果许可文件包含一项进一步限制但允许在本许可下重新许可或转让,您可以将受该许可文件条款约束的材料添加到覆盖作品中,前提是进一步限制不会在该重新许可或转让后继续存在。
如果您根据本节添加受覆盖作品的条款,您必须在相关源文件中放置一个声明,说明适用于这些文件的附加条款,或者一个指示如何找到适用条款的通知。
附加条款,无论是许可的还是非许可的,都可以以单独撰写的许可的形式表述,或者作为例外情况;上述要求均适用。
- 终止。
您不得除本许可明确规定外传播或修改覆盖作品。任何其他传播或修改的行为都是无效的,并将自动终止您根据本许可享有的权利(包括根据第11条第3段授予的任何专利许可)。
然而,如果您停止所有本许可的违反行为,则您从特定版权持有者那里获得的许可临时恢复(除非和直到版权持有者明确并最终终止您的许可),或者永久恢复,如果版权持有者在停止违反行为后的60天内未能以某种合理方式通知您违反行为。
此外,如果版权持有者以某种合理方式通知您违反行为,这是您第一次从该版权持有者那里收到关于本许可违反行为的通知(对于任何作品),并且在您收到通知后的30天内纠正了违反行为,则您从特定版权持有者那里获得的许可永久恢复。
本节终止您的权利不会终止从您那里收到副本或权利的各方根据本许可获得的许可。如果您的权利已被终止并且未永久恢复,您不符合根据第10节获得相同材料的新许可的资格。
- 拥有副本不需要接受。
您无需接受此许可即可接收或运行程序副本。仅因使用点对点传输接收副本而发生的附带传播也不需要接受。然而,除本许可外,没有任何其他许可授予您传播或修改任何受保护作品的权限。如果您不接受此许可,这些行为将侵犯版权。因此,通过修改或传播受保护作品,您表明您接受此许可进行此类行为。
- 下游接收者的自动许可。
每次您传播受保护作品时,接收者都会自动从原始许可方获得许可,以运行、修改和传播该作品,但须遵守本许可。您不负责强制第三方遵守本许可。
“实体交易”是指转让组织控制权或其大部分资产、划分组织或合并组织的交易。如果受保护作品的传播由实体交易引起,则该交易中的每一方(如果接收了作品的副本),也都会收到该方的前任利益相关者拥有的或根据前一段所述可以授予的关于该作品的任何专利许可,以及从前任利益相关者处获得该作品对应源代码的占有权,如果前任拥有或可以合理努力获得。
您不得对本许可授予或确认的权利行使施加任何进一步的限制。例如,您不得对本许可授予的权利行使收取许可费、版税或其他费用,并且您不得提起诉讼(包括诉讼中的交叉诉讼或反诉),声称制作、使用、销售、提供销售或进口程序或其任何部分侵犯了任何专利权。
- 专利。
“贡献者”是指授权在许可证下使用程序或基于程序的作品的版权持有人。因此许可的作品称为贡献者的“贡献版本”。
贡献者的“必要专利权要求”是指贡献者拥有或控制的、无论已获得还是今后获得的、某些方式会侵犯本许可证允许的制造、使用或销售其贡献版本的专利权,但不包括仅因对贡献版本进行进一步修改才会侵犯的专利权要求。在此定义中,“控制”包括以与本许可证要求一致的方式授予专利子许可证的权利。
每位贡献者向您授予一项非独占的、全球性的、免版税的专利许可,根据贡献者的必要专利权要求,以制造、使用、销售、提供销售、进口以及以其他方式运行、修改和传播其贡献版本的内容。
在以下三个段落中,“专利许可”是指任何名称的明确协议或承诺(无论其名称如何),不执行专利(例如,明确允许实施专利或承诺不就专利侵权提起诉讼)。向一方“授予”此类专利许可意味着与该方达成此类协议或承诺,不针对该方执行专利。
如果您传播受保护的作品,明知依赖专利许可,并且该作品的对应源代码无法通过公开可用的网络服务器或其他易于获取的方式,免费且按照本许可证的条款供任何人复制,那么您必须:(1)使对应源代码变得可获取,或者(2)安排剥夺自己对这一特定作品专利许可的权益,或者(3)按照本许可证的要求,以符合本许可证要求的方式,将专利许可扩展到下游接收者。"明知依赖"意味着您实际上知道,如果不是因为专利许可,您在一个国家传播受保护的作品,或者您的接收者在一个国家使用受保护的作品,将侵犯在该国一个或多个您有理由相信是有效的可识别专利。
如果您根据或与单一交易或安排,传播受保护的作品,或通过采购转让方式传播受保护的作品,并授予一些接收受保护作品的当事人专利许可,授权他们使用、传播、修改或转让特定副本的受保护作品,那么您授予的专利许可将自动扩展到所有受保护作品的接收者和基于其的作品。
如果专利许可不包括在其覆盖范围内,禁止行使,或以不行使本许可证明确授予的其中一个或多个权利为条件,则该专利许可为"歧视性"。如果您是软件分发的业务方的一个当事人,根据该安排,您根据传播该作品的活动的程度向第三方支付费用,并且第三方授予您从您那里接收受保护作品的任何当事人歧视性专利许可(a)与您传播的受保护作品的副本(或从这些副本制作的副本)有关,或(b)主要用于并与其包含受保护作品的具体产品或汇编有关,除非您在该安排之前或在该专利许可授予之前已进入该安排。
本许可证中的任何内容均不得解释为排除或限制根据适用的专利法您可能享有的任何默示许可或其他侵权抗辩权。
- 不放弃他人自由。
如果对您施加的条件(无论是由法院命令、协议或其他方式)与本许可证的条件相矛盾,则这些条件不能免除您遵守本许可证的条件。如果您无法传播受保护作品以同时满足本许可证和任何其他相关义务,那么作为后果,您可能根本无法传播它。例如,如果您同意必须对从您那里接收程序的人进一步传播收取版税的条款,那么满足这两个条款和本许可证的唯一方法就是完全停止传播程序。
- 与GNU Affero通用公共许可证一起使用。
尽管本许可证的任何其他规定,您有权限将任何受保护的作品与根据GNU Affero通用公共许可证第3版许可的作品链接或组合成一个单一的作品,并传播由此产生的工作。本许可证的条款将继续适用于受保护作品的部分,但GNU Affero通用公共许可证第13条的特殊要求将适用于该组合本身通过网络进行交互。
- 本许可证的修订版本。
自由软件基金会可能会不时发布修订版和/或新版本的GNU通用公共许可证。这些新版本的精神将与当前版本相似,但可能因解决新问题或关注点而有所不同。
每个版本都有一个区分性的版本号。如果程序指定了GNU通用公共许可证的某个编号版本“或任何后续版本”适用于它,您可以选择遵循该编号版本或自由软件基金会发布的任何后续版本的条款和条件。如果程序没有指定GNU通用公共许可证的版本号,您可以选择自由软件基金会发布的任何版本。
如果程序指定代理可以决定可以使用的GNU通用公共许可证的后续版本,那么该代理对某个版本接受声明的公开声明永久授权您为该程序选择该版本。
后续许可证版本可能会给您额外的或不同的权限。但是,您选择遵循后续版本并不会对任何作者或版权所有者施加额外的义务。
- 免责声明。
在适用的法律允许的范围内,本程序不提供任何保证。除非以书面形式明确声明,否则版权所有者/或其他各方提供的程序“按原样”不提供任何类型的保证,无论是明示的还是默示的,包括但不限于对适销性和特定用途适用性的默示保证。程序的质量和性能风险完全由您承担。如果程序存在缺陷,您将承担所有必要的维修、修理或更正的成本。
- 责任限制。
除非适用法律要求或书面同意,否则在任何情况下,版权所有者或任何根据上述规定修改和/或传输程序的第三方,不会对您因使用或无法使用该程序而产生的损害负责,包括但不限于任何一般性、特殊性、偶然性或后果性损害(包括但不限于数据丢失或数据被错误处理,或您或第三方遭受的损失,或程序无法与其他程序协同工作),即使该持有人或其他方已被告知此类损害的可能性。
- 第15条和第16条的解读。
如果上述免责声明和责任限制不能根据其条款在当地法律中产生法律效力,审理法院应适用最接近于绝对免除与程序相关的所有民事责任的当地法律,除非程序副本的附带保证或责任承担以费用为条件。
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
如果您开发了一个新的程序,并且希望它对公众尽可能有用,最好的方法是将其作为免费软件,使每个人都可以根据这些条款重新分配和修改。
为此,请将以下声明附加到程序中。将它们附加到每个源文件的开始部分最为安全,这样可以最有效地声明排除保证;每个文件至少应包含“版权”行和指向完整声明的指针。
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://gnu.ac.cn/licenses/>.
另外,添加有关通过电子和纸质邮件联系您的方法的信息。
如果程序可以进行终端交互,当它以交互模式启动时,应输出一个简短的通知,如下所示
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
假设的命令show w
和show c
应显示通用公共许可证的适当部分。当然,您的程序的命令可能不同;对于图形用户界面,您将使用“关于”框。
您还应让您的雇主(如果您是一名程序员)或学校(如果有的话),如果需要,为程序签署“版权免责声明”。有关此信息和如何申请及遵循GNU GPL的更多信息,请参阅https://gnu.ac.cn/licenses/。
GNU通用公共许可证不允许将您的程序集成到专有程序中。如果您的程序是子例程库,您可能会认为允许专有应用程序与该库链接更有用。如果您想这样做,请使用GNU较宽松的通用公共许可证,而不是此许可证。但在这样做之前,请先阅读https://gnu.ac.cn/licenses/why-not-lgpl.html。