Files
bedrock/web/app/themes/badegg/functions.php

100 lines
3.0 KiB
PHP

<?php
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our theme. We will simply require it into the script here so that we
| don't have to worry about manually loading any of our classes later on.
|
*/
if (! file_exists($composer = __DIR__.'/vendor/autoload.php')) {
wp_die(__('Error locating autoloader. Please run <code>composer install</code>.', 'sage'));
}
require $composer;
/*
|--------------------------------------------------------------------------
| Register The Bootloader
|--------------------------------------------------------------------------
|
| The first thing we will do is schedule a new Acorn application container
| to boot when WordPress is finished loading the theme. The application
| serves as the "glue" for all the components of Laravel and is
| the IoC container for the system binding all of the various parts.
|
*/
if (! function_exists('\Roots\bootloader')) {
wp_die(
__('You need to install Acorn to use this theme.', 'sage'),
'',
[
'link_url' => 'https://roots.io/acorn/docs/installation/',
'link_text' => __('Acorn Docs: Installation', 'sage'),
]
);
}
\Roots\bootloader()->boot();
/*
|--------------------------------------------------------------------------
| Autoload PSR-4 files
|--------------------------------------------------------------------------
*/
function autoload_psr4($name) {
$path = __dir__ . '/app/' . $name . '/*.php';
$namespace = 'App\\' . $name;
foreach(glob($path) as $filename) {
$class = $namespace . '\\' . basename($filename, '.php');
new $class();
}
}
function autoload_psr4_blocks() {
$blockDir = __dir__ . '/resources/views/blocks';
if(!is_dir($blockDir)) return;
$path = $blockDir . '/*';
$namespace = 'Blocks\\';
foreach(glob($path, GLOB_ONLYDIR) as $directory) {
$name = basename($directory);
$class = $namespace . $name . '\\' . $name;
new $class();
}
}
autoload_psr4('Admin');
autoload_psr4_blocks();
/*
|--------------------------------------------------------------------------
| Register Sage Theme Files
|--------------------------------------------------------------------------
|
| Out of the box, Sage ships with categorically named theme files
| containing common functionality and setup to be bootstrapped with your
| theme. Simply add (or remove) files from the array below to change what
| is registered alongside Sage.
|
*/
collect(['setup', 'filters'])
->each(function ($file) {
if (! locate_template($file = "app/{$file}.php", true, true)) {
wp_die(
/* translators: %s is replaced with the relative file path */
sprintf(__('Error locating <code>%s</code> for inclusion.', 'sage'), $file)
);
}
});