Conditionally load backend (or frontend) code using traits.
Document Header
Homepage:https://eacDoojigger.earthasylum.com/
Author:EarthAsylum Consulting
Last Updated:09-May-2025
Contributors:EarthAsylum Consulting, Kevin Burkholder
Requires {eac}Doojigger:3.1.2
WordPress URI:https://wordpress.org/plugins/search/earthasylum/
GitHub URI:https://github.com/EarthAsylum/docs.eacDoojigger/wiki/
Using Conditional Traits in PHP
I've found that within {eac}Doojigger, extensions, and any plugin, that a substantial amount of code is dedicated to backend or administrator functions. This doesn't bode well on the frontend as all of this unneeded code is loaded.
To alleviate this, we can use make-shift conditional traits...
-
Create a small trait file:
myAwesomeTraits.trait.php
<?php namespace myAwesomeNamespace; if ( ! is_admin() ) { trait myAwesomeTraits {} } else require "myAwesomeTraits.admin.php";
-
Create your administrator trait file:
myAwesomeTraits.admin.php
<?php namespace myAwesomeNamespace; trait myAwesomeTraits { // your administration methods public function myAwesomeAdmin() { } }
-
Include your trait file in your plugin or extension
require "myAwesomeTraits.trait.php"; class myAwesomePlugin extends \EarthAsylumConsulting\abstract_context { /** * @trait myAwesomeTraits, loads only admin methods */ use \myAwesomeNamespace\myAwesomeTraits; }
Using this method you can control what code gets loaded for backend (or frontend) use.