PhalconPHP - 全局函数和 类
PhalconPHP - Global functions and classes
我想在 php 完成我的第一个大型项目。我使用 Phalcon PHP 并使用 Phalcon 开发人员工具创建了项目结构。它是这样的:
.
├── 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 加载器中注册它们并为整个项目做一次?
Phalcon 的好处是您可以自由地以最适合您当前情况的方式组织您的项目。
我在大多数项目中使用的更通用的方法是在自动加载器中注册最常用的名称空间。在我的例子中,我使用的是多模块结构,这是在给定模块的 Module.php 文件中完成的。
模块class:
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();
}
}
在我的例子中,助手是不是模型的文件,而是为特定的东西服务的。例如,我有一个文件助手,它包含用于操作文件系统的函数。我有一个 Helper 可以处理字符串操作,例如 slugalization、latinization 等等...
我还有一个 Lib 文件夹,我在其中放置了我的 public 库,例如 PHPMailer、BrowserDetect、ImageProcessing 库等。
现在介绍 Laravel 的 dd()
等全局函数。我有一个小文件,我将其包含在 bootstrap 文件或您的 index.php 中。它包含 1-2 个全局函数,例如:
function d($what)
{
echo '<pre>';
print_r($what);
die('</pre>');
}
在我的例子中,我想在任何地方都可以轻松使用的全局函数并不多,就像上面用于调试的函数一样。我在上面提到的 Helper 文件中放入的其他内容。
希望我能帮上忙,很高兴听到别人对此的看法。
我想在 php 完成我的第一个大型项目。我使用 Phalcon PHP 并使用 Phalcon 开发人员工具创建了项目结构。它是这样的: .
├── 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 加载器中注册它们并为整个项目做一次?
Phalcon 的好处是您可以自由地以最适合您当前情况的方式组织您的项目。
我在大多数项目中使用的更通用的方法是在自动加载器中注册最常用的名称空间。在我的例子中,我使用的是多模块结构,这是在给定模块的 Module.php 文件中完成的。
模块class:
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();
}
}
在我的例子中,助手是不是模型的文件,而是为特定的东西服务的。例如,我有一个文件助手,它包含用于操作文件系统的函数。我有一个 Helper 可以处理字符串操作,例如 slugalization、latinization 等等...
我还有一个 Lib 文件夹,我在其中放置了我的 public 库,例如 PHPMailer、BrowserDetect、ImageProcessing 库等。
现在介绍 Laravel 的 dd()
等全局函数。我有一个小文件,我将其包含在 bootstrap 文件或您的 index.php 中。它包含 1-2 个全局函数,例如:
function d($what)
{
echo '<pre>';
print_r($what);
die('</pre>');
}
在我的例子中,我想在任何地方都可以轻松使用的全局函数并不多,就像上面用于调试的函数一样。我在上面提到的 Helper 文件中放入的其他内容。
希望我能帮上忙,很高兴听到别人对此的看法。