分发一个小型PHP应用程序
我编写了一个小的PHP应用程序,我想发布它。我正在寻找最佳实践,以便能够以最小的麻烦将其安装到大多数Web主机上 简单地说:这是一个简单的工具,让人们在使用密码登录后下载文件 因此,我的问题是: 1) 我应该如何处理配置值?我没有使用数据库,所以配置文件似乎是合适的。我知道其他php应用程序(例如Wordpress)使用defines,但它们是全局的,并且名称可能会冲突。(显然,全局变量也有同样的问题。)我研究了PHP中内置的“ini”文件机制。它只允许在顶部添加注释,因此您无法轻松地对每个设置进行注释,也无法使用“php-f”验证语法。其他选择 2) 如何处理模板?应用程序需要输出一个表单。可能有错误消息。(例如,“对不起,密码错了。”)我有一个带有HTML表单的类变量,但也允许使用外部模板文件(在配置中指定)。我执行一些简单的搜索和替换-例如,将%SCRIPT%替换为脚本名称,%STATUS%以保存错误消息。这感觉有点像是重新发明了轮子,但包括Smarty这样的模板系统太过分了。(另外,他们可能已经有了一个模板系统。)其他选项 3) i18n-只有3个消息字符串,而且gettext似乎没有被普遍安装。仅仅在配置文件中设置这三个字符串参数是一个坏主意吗 4) 如何最好地与其他框架集成?我的应用程序是一个单独的类。所以,我想我可以包括一个php脚本,它显示了类是如何被调用的。对于那些不得不将其集成到另一个框架中的人来说,这将是一个起点,但对于那些对定制不感兴趣的人来说,这也很好。合理吗 5) GET/POST参数-类查看$\u GET和$\u POST是否不好?在构建过程中是否应将所有值传递给我的类 谢谢分发一个小型PHP应用程序,php,distribution,Php,Distribution,我编写了一个小的PHP应用程序,我想发布它。我正在寻找最佳实践,以便能够以最小的麻烦将其安装到大多数Web主机上 简单地说:这是一个简单的工具,让人们在使用密码登录后下载文件 因此,我的问题是: 1) 我应该如何处理配置值?我没有使用数据库,所以配置文件似乎是合适的。我知道其他php应用程序(例如Wordpress)使用defines,但它们是全局的,并且名称可能会冲突。(显然,全局变量也有同样的问题。)我研究了PHP中内置的“ini”文件机制。它只允许在顶部添加注释,因此您无法轻松地对每个设置
和
而不是
或
),这可能是皇家PITA。配置
您可以使用如下所示的php文件:
<?php
return array(
'option1' => 'foobar',
'option2' => 123,
//and so on...
);
?>
如果您计划主要将类作为组件分发到其他应用程序中,那么只需将config array/object作为参数放入类的构造函数中,并将详细信息留给用户即可
模板
对于这样简单的应用,您描述的方法应该足够了。记住,一个人总是可以扩展你的类,并用他自己的方法重载你的输出方法
I10N
如前所述,对于3个变量来说,除了将它们存储为config之外,任何其他方法都是多余的
整合
对每个公共方法(或者更好的是受保护的和私有的方法)进行注释,解释它们的作用以及需要哪些参数。如果你结合一个例子,对大多数用户来说应该足够了
投递
您的类使用密码,您甚至想过通过GET?;)发送密码
想想浏览器历史记录、参考标题等——你的用户密码会在那里可见。除了Krzysztof的好建议外:
- 使用
“Use”结束标记,如果它是文件的最后一个字符,则不需要它。我知道短标记可能会导致问题-我的PHP文件都是PHP,所以这不是什么大问题。但是省略“?>”能给我带来什么?(无意中添加额外空格的风险较小?)您不需要冒在文件末尾输出空白的风险—如果您想稍后在应用程序中发送http头,例如启动会话,这可能是不好的。当然,您可以通过输出缓冲绕过这个问题。
$config = (array) include 'path/to/config/file';