oxid-community/ moduleinstaller
Requires
- php: >=7.0
- composer/composer: ^1.9
- oxid-community/symfony-kernel: dev-fix-endles-update
- oxid-community/symfony-security-bundle: *
- symfony/dotenv: ^v4.3.3
- symfony/twig-bundle: ^3.2
- dev-master
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
- dev-dependabot/npm_and_yarn/jquery-3.5.0
- dev-dependabot/npm_and_yarn/acorn-6.4.1
- dev-composer-require-route
- dev-ComposerApi
- dev-backup
This package is auto-updated.
Last update: 2020-09-07 03:28:02 UTC
README
Alpha 发布
该程序处于开发阶段。输入框中的信息将被直接写入 composer.json
文件中。请在了解所做操作的情况下使用此模块。
请绝对不要在生产环境中使用此程序!
测试 / 执行
安装
composer create-project oxid-community/moduleinstaller
执行
内置PHP服务器
如果PHP已全局安装,可以使用内置PHP服务器执行此工具。
composer run-script server
现在可以通过URL在浏览器中访问安装程序:http://localhost:8088
注意事项:使用 --timeout=0 选项时,脚本不会在300秒后中断: composer run-script server --timeout=0
Apache/Nginx
安装程序也可以在安装了PHP的任何Apache安装中运行,例如WampServer、Xampp、Wamp、Lamp、Docker...
现在可以通过URL在浏览器中访问安装程序:http://localhost/pfad/moduleinstaller
注意:根据域名或端口的配置,URL可能会有所不同。
路由测试
所有路由都记录在文件 src/Resources/config/routing.yml
中。这些可以通过上述URL附加
http://localhost:8088/oxid/moduleinstaller/repositories/
可执行文件(PHAR)
为什么是可执行文件?最终,此模块的目标不是真正的模块,而是一个像Composer一样的程序,用PHP编写。PHAR是PHP存档,因此非常适合生成可执行文件。
安装 & 使用
- 上传 composer.json
- 创建目录 /public
- 将Phar文件加载到目录 /public 中
- 访问 https://domain.tld/oxid.phar.php
注意:在开发阶段,不提供PHAR文件,必须像下面描述的那样自行生成。
优点
- 只需上传一个文件
- 该文件可以接受控制台命令
- 无需通过控制台连接到服务器
- 可以通过URL调用和执行文件
生成文件
该文件使用Phing和Box生成。为了生成可执行文件,必须安装这两个包。
composer global req phing/phing
composer global req humbug/box
安装后,可以生成oxid.phar
或oxid.phar.php
文件。这个文件像index.php
一样可执行,可以用下面提到的PHP内置服务器启动,而不是模块。
oxid.phar.php
文件创建后在/public
目录中。
开发
phing debug
生产
phing
2019年黑客马拉松的过程 & 思考
在确定主题时,我们很快意识到这两个项目必须一起开发。安装器旨在提高用户友好性,并接收内核,在需要时将包集成到Oxid中,并使其易于使用。
为什么需要一个Composer安装器?
Composer提供了从不同网站安装和更新软件的优势。其中最重要的工具是控制要安装的包的最小或最大版本。
除了优势之外,许多用户抱怨Composer过于复杂。包可能找不到,依赖项已过时或定义错误,内存不足,而对于一些不熟练的用户来说,控制台可能会无意识地引起压力。
为了利用优势并最大限度地弥补劣势,启动了一个安装器的项目。重要的是要说明,这个模块必须完全独立于Oxid运行,并且最多只需要FTP来上传安装器。这样,用户就能够通过调用安装器来安装Oxid。
流程
- 安装器可以在Oxid后端模块中安装,至少对于这一点来说,不再需要控制台。
- 安装器可以在没有Oxid的情况下使用。
- 安装器可以安装来自其他来源的包,而不是Packagist。
- 公司可以提供私有包。
优势 & 计划
- 商店可以通过Cronjob自动更新(模块越少,更新越安全)。
- 如果更新会干扰商店,可以恢复旧版本。
- 模块和Oxid本身可以通过图形界面安装。
- 错误输出可以更容易地解释。
还应该能够自动激活模块并在安装或更新后更新数据库。
为什么是Symfony?
从版本6开始,Oxid已经集成了Symfony 3的一些组件,但还没有安装和通过内核激活Symfony Bundles的功能。主要的挑战是创建一个内核,它能够自动通过Composer接收Bundles,激活它们,并继续保证Oxid的正常流程。
Symfony凭借其庞大的社区在PHP世界中确立了稳定和创新的地位。它提供工作流程并要求代码和书写风格的一致性。例如,制造支付模块的公司能够开发一个中心工具,并为基于Symfony的商店编写一个驱动器,该驱动器解释模块功能的可用性。
注意:由于Oxid支持PHP 7.0和7.1运行,以及这两个版本之间可以通信,因此无法加载Symfony 4或更高版本。从版本4开始,一些组件已经期待PHP 7.2或更高版本。
优点 & 计划
- Bundles可用,无需重新发明轮子(现有概念和软件)
- 模块的开发将更加统一
- 现在可以通过Symfony的特性(如依赖注入和路由)逐步替换核心功能
- 公司现在可以更容易地将它们的API/Libs绑定到Oxid上
- Symfony将持续发展。最终,可能可以动态定义包版本,而不会出现更新问题
为什么我们没有完成?
项目已经非常先进,现在可以由任何人进一步开发或由开发者使用。我们现在已经提供了Kernel以供使用。通过Composer安装还需要数周(数月)时间。纯功能应相对快速建立,大部分工作将是为所有主机、开发环境、操作系统和软件版本创建兼容性。
在任何情况下,我们都需要一些耐心和大量反馈。