我想在php中完成我的第一个大型项目。我使用Phalcon PHP,并使用Phalcon Developer工具创建了项目结构。就像:。
├── app
│ ├── cache
│ ├── config
│ │ ├── config.php
│ │ ├── loader.php
│ │ └── services.php
│ ├── controllers
│ ├── migrations
│ ├── models
│ └── views
├── index.html
└── public
├── css
├── files
├── img
├── index.php
├── js
└── temp我想我需要一些全局函数和类。例如,我想将Laravel的dd函数实现为哑变量,并使用以下函数
dd($value); 我想去哪儿都行。我还想创建一些全局类来使用它们的静态函数。例如:
User::isLogged()如何在我的项目中实现这一点?在app/?中创建目录函数或lib或indcude?这是个会议吗?将全局类放在单独的文件夹中?如何将全局函数和类分开,并在标准Phalcon加载程序中注册这些函数和类,并对整个项目执行一次?
发布于 2016-07-07 08:39:59
Phalcon的好处是,您可以自由地以最适合您当前情况的方式组织您的项目。
我在大多数项目中使用的一种更通用的方法是在自动加载程序中注册最常用的命名空间。在我的例子中,我使用多模块结构,这是在给定模块的Module.php文件中完成的。
模块类:
class Module
{
public function registerAutoloaders($di)
{
$config = $di->getConfig();
$loader = new \Phalcon\Loader();
$namespaces = [
'Frontend\Controllers' => __DIR__ . '/controllers/',
'Frontend\Forms' => __DIR__ . '/forms/',
'Models' => $config->site->path->common . 'models/',
'Helpers' => $config->site->path->common . 'helpers/',
];
$loader->registerNamespaces($namespaces);
$loader->register();
}
}在我的例子中,帮助者不是模型文件,服务于特定的东西。例如,我有一个文件助手,它拥有操作文件系统的功能。我有一个处理字符串操作的助手,比如弹字化,拉丁化等等.
我也有一个Lib文件夹,我把我的公共图书馆,如PHPMailer,BrowserDetect,ImageProcessing库等等。
现在是关于像Laravel的dd()这样的全局函数。我有一个小文件,我包括在引导文件或您的index.php。它包含1-2个全局函数,例如:
function d($what)
{
echo '<pre>';
print_r($what);
die('</pre>');
}在我的例子中,我不想在任何地方都很容易地使用很多全局函数,比如上面的一个用于调试。我在上面提到的Helper文件中所放的其他东西。
希望我能帮上忙,并且很高兴听到别人对此的看法。
https://stackoverflow.com/questions/38199489
复制相似问题