oxid-community/moduleinstaller

此软件包已被弃用,不再维护。未建议替代软件包。

安装: 34

依赖: 0

建议者: 0

安全: 0

星标: 4

关注者: 10

分支: 1

开放问题: 9

类型:oxideshop-module

0.11.0 2019-08-22 05:47 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存档,因此非常适合生成可执行文件。

安装 & 使用

  1. 上传 composer.json
  2. 创建目录 /public
  3. 将Phar文件加载到目录 /public 中
  4. 访问 https://domain.tld/oxid.phar.php

注意:在开发阶段,不提供PHAR文件,必须像下面描述的那样自行生成。

优点

  • 只需上传一个文件
  • 该文件可以接受控制台命令
  • 无需通过控制台连接到服务器
  • 可以通过URL调用和执行文件

生成文件

该文件使用PhingBox生成。为了生成可执行文件,必须安装这两个包。

composer global req phing/phing
composer global req humbug/box

安装后,可以生成oxid.pharoxid.phar.php文件。这个文件像index.php一样可执行,可以用下面提到的PHP内置服务器启动,而不是模块。

oxid.phar.php文件创建后在/public目录中。

开发

phing debug

生产

phing

2019年黑客马拉松的过程 & 思考

在确定主题时,我们很快意识到这两个项目必须一起开发。安装器旨在提高用户友好性,并接收内核,在需要时将包集成到Oxid中,并使其易于使用。

为什么需要一个Composer安装器?

Composer提供了从不同网站安装和更新软件的优势。其中最重要的工具是控制要安装的包的最小或最大版本。

除了优势之外,许多用户抱怨Composer过于复杂。包可能找不到,依赖项已过时或定义错误,内存不足,而对于一些不熟练的用户来说,控制台可能会无意识地引起压力。

为了利用优势并最大限度地弥补劣势,启动了一个安装器的项目。重要的是要说明,这个模块必须完全独立于Oxid运行,并且最多只需要FTP来上传安装器。这样,用户就能够通过调用安装器来安装Oxid。

流程

  1. 安装器可以在Oxid后端模块中安装,至少对于这一点来说,不再需要控制台。
  2. 安装器可以在没有Oxid的情况下使用。
  3. 安装器可以安装来自其他来源的包,而不是Packagist。
  4. 公司可以提供私有包。

优势 & 计划

  • 商店可以通过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安装还需要数周(数月)时间。纯功能应相对快速建立,大部分工作将是为所有主机、开发环境、操作系统和软件版本创建兼容性。

在任何情况下,我们都需要一些耐心和大量反馈。