# yaymail/4.3.4/src/TemplatePatterns/PatternsLoader.php

YayMail – WooCommerce Email Customizer, version 4.3.4. 39 lines.

- Page: https://pluginprobe.com/plugins/yaymail/4.3.4/code/src/TemplatePatterns/PatternsLoader.php
- Raw: https://pluginprobe.com/plugins/yaymail/4.3.4/raw/src/TemplatePatterns/PatternsLoader.php
- Modified: 2025-05-19T11:32:38+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/yaymail/4.3.4/code/src/TemplatePatterns/PatternsLoader.php#L10-L20`.

```php
<?php

namespace YayMail\TemplatePatterns;

use YayMail\TemplatePatterns\PatternService;
use YayMail\Utils\SingletonTrait;

/**
 * @method static PatternLoaders get_instance()
 */
class PatternsLoader {
    use SingletonTrait;

    /**
     * @var PatternService
     */
    public $service;

    private function __construct() {

        $this->service = PatternService::get_instance();

        $dir = new \DirectoryIterator( YAYMAIL_PLUGIN_PATH . '/src/TemplatePatterns/Patterns' );
        foreach ( $dir as $fileinfo ) {
            if ( ! $fileinfo->isDot() ) {
                $file_name  = $fileinfo->getFilename();
                $class_name = basename( $file_name, '.php' );
                $class      = 'YayMail\\TemplatePatterns\\Patterns\\' . $class_name;
                if ( class_exists( $class ) ) {
                    $this->service->register( $class::get_instance() );
                }
            }
        }

        do_action( 'yaymail_register_patterns', $this->service );
    }

}

```
