我写了一个我想分发的小PHP应用程序.我正在寻找最佳实践,以便能够以最小的麻烦安装在大多数虚拟主机上.
简而言之:这是一个简单的工具,让人们在用密码登录后下载文件.
所以我的问题是:
1)我应该如何处理配置值?我没有使用数据库,所以配置文件似乎合适.我知道其他php应用程序(例如Wordpress)使用定义,但它们是全局的,并且名称可能会发生冲突.(显然,全局变量也有同样的问题.)我查看了PHP内置的"ini"文件机制.它只允许在顶部进行注释 - 因此您无法轻松地对每个设置进行注释 - 并且您无法使用"php -f"验证语法.其他选择?
2)如何处理模板?该应用程序需要抽出一个表格.可能有错误信息.(例如"抱歉,密码错误.")我有一个带有HTML表单的类变量,但也允许使用外部模板文件(在配置中指定).我做了一些简单的搜索和替换 - 例如%SCRIPT%到脚本的名称,%STATUS%来保存错误消息.这感觉有点像重新发明轮子,但包括像Smarty这样的模板系统是过度的.(另外他们可能已经有模板系统.)其他选择?
3)i18n - 只有3个消息字符串,并且gettext似乎没有普遍安装.仅仅在配置文件中创建这三个字符串参数是一个坏主意吗?
4)如何最好地与其他框架集成?我的应用程序是一个单独的类.所以,我想我可以只包含一个显示该类被调用的PHP脚本.对于那些不得不将其集成到另一个框架中的人来说,这将是一个起点,对于那些对定制不感兴趣的人来说也是如此.合理?
5)GET/POST参数 - 对于一个类来说,查看$ _GET和$ _POST是不好的形式?在施工期间是否应将所有值传递到我的班级?
谢谢.
您可以使用这样的php文件:
<?php
return array(
'option1' => 'foobar',
'option2' => 123,
//and so on...
);
?>
Run Code Online (Sandbox Code Playgroud)
而在主类中只需使用:
$config = (array) include 'path/to/config/file';
Run Code Online (Sandbox Code Playgroud)
如果您计划将您的类作为组件分发到其他应用程序中,那么只需将config array/object作为参数放在类的构造函数中,并将详细信息留给用户.
对于这种简单的应用,您描述的方法应该足够了.请记住,总是可以扩展您的类并使用自己的输出方法重载您的输出方法.
如前所述,对于3个变量而言,除了将它们存储为配置之外的任何东西都是过度的.
评论每个公共方法(甚至更好的保护和私有方法),并解释它们做了什么以及需要什么参数.如果将它与示例相结合,对大多数用户来说应该足够了.
你的班级使用密码,你甚至考虑通过GET发送它们?;)考虑浏览器历史记录,引用标题等 - 您的用户密码将在那里可见.