如何为 PHP 导出拆分 "main class" 结构?

How to break up the "main class" structure for PHP export?

这是我现在的 project.hxml:

-cp Source
-main Login
-php Export/Server
-v

它所做的是获取 classes (Login.hx) 之一并将其用作整个 PHP 服务器的主要 class。
这对 PHP 不是很有用,因为 PHP 并不真正支持 "main" class 的概念,相反你需要一个 .php 您想要从 Web 在服务器上调用的每个函数的脚本,它们大多彼此独立工作。

这里最大的问题显然是 "main" class,因为 haxe 将所有内容输出到指定文件夹,但将 Login.hx 重命名为 index.php。
但是,我不希望它变成 index.php.
我想要的是 login.php、logout.php、morestuff.php,基本上我所有的 haxe classes 都变成可调用的 php 脚本,以便能够调用它们像这样:

/appname/login  
/appname/logout
/appname/morestuff  
etc.

我现在能想到的实现这一目标的唯一方法是不太好的解决方法。

  1. 创建一个更大的 project.hxml 文件,将每个 class 输出到其自己的文件夹中(因此 Export/Server/Login、Export/Server/Logout等)使用 --next。这会起作用,但也会扩大大小,因为所有 .php 文件 haxe 输出(Std 等)将在这些文件夹中重复。
  2. 有一个实际的 Main class,它使用参数来 "forward" 对实际 classes 的不同调用。所以基本上调用会变成 /appname/Main?function=login, /appname/Main?function=logout, etc.
    这样比较容易接受,但还是觉得有点麻烦
  3. 我不是 PHP 专家,但可能有一种方法可以在 PHP 内部进行一些配置。我宁愿不要。

当然,一定有更好的方法吧?

我曾为您遇到的同样问题而苦苦挣扎,这是我能做的最好的。 您可以使用以下命令更改 hxml 文件或命令行选项中 php 入口脚本的文件名:

--php-front newfilename.php     

您可能还会发现更改 lib 目录所在的位置很有用:

--php-lib ../lib

因此 hxml 文件中的完整设置(生成多个 php 入口点)可能如下所示:

-cp src
-main Main
--php-front joomlahaxe.php
-php bin/com_joomlahaxe/site
-debug

--next
-cp src
-main JoomlahaxeViewJoomlahaxe
--php-front view.html.php   
--php-lib ../../lib
-php bin/com_joomlahaxe/site/views/joomlahaxe