PhalconGlobal функции и классы

Я хотел бы сделать мой первый большой проект в php. Я использую Phalcon PHP, и я создал структуру проекта с помощью Phalcon Developer Tools. Это что-то вроде:
,

├── app
│   ├── cache
│   ├── config
│   │   ├── config.php
│   │   ├── loader.php
│   │   └── services.php
│   ├── controllers
│   ├── migrations
│   ├── models
│   └── views
├── index.html
└── public
├── css
├── files
├── img
├── index.php
├── js
└── temp

Я думаю, что мне понадобятся некоторые глобальные функции и классы. Я хотел бы, например, реализовать функцию dd Laravel для немых переменных и с помощью этой функции, как

dd($value);

где я хочу. Я также хочу создать некоторые глобальные классы, чтобы использовать их статические функции. Например:

User::isLogged()

Как реализовать это в моем проекте? Создать каталог функций или lib или indcude в app /? Это конвенция? Размещать глобальные классы в отдельных папках? Как разделить глобальные функции и классы и зарегистрировать их в стандартном загрузчике Phalcon и сделать это один раз для всего проекта?

1

Решение

Хорошая вещь о 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();
}
}

Помощниками в моем случае являются файлы, которые не являются моделями и служат для чего-то конкретного. Например, у меня есть помощник по файлам, который содержит функции для манипулирования файловой системой. У меня есть помощник для обработки строковых операций, таких как slugalization, latinization и так далее …

У меня также есть папка Lib, в которую я помещаю свои публичные библиотеки, такие как PHPMailer, BrowserDetect, библиотеки ImageProcessing и так далее.

А теперь о глобальных функциях, таких как Laravel’s dd(), У меня есть небольшой файл, который я включаю в файл начальной загрузки или ваш index.php. Он содержит 1-2 глобальные функции, такие как:

function d($what)
{
echo '<pre>';
print_r($what);
die('</pre>');
}

В моем случае не так много глобальных функций, которые я хочу легко использовать везде, как выше, для отладки. Остальные вещи, которые я положил в файлы Helper, упомянутые выше.

Надеюсь, я помог и был бы рад услышать чужое мнение по этому поводу.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]