How To: Using Conditional Traits in PHP

EarthAsylum Consulting WordPress eacDoojigger

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...

  1. Create a small trait file: myAwesomeTraits.trait.php

    <?php
    namespace myAwesomeNamespace;
    
    if ( ! is_admin() )
    {
        trait myAwesomeTraits {}
    }
    else require "myAwesomeTraits.admin.php";
  2. Create your administrator trait file: myAwesomeTraits.admin.php

    <?php
    namespace myAwesomeNamespace;
    
    trait myAwesomeTraits
    {
        // your administration methods
        public function myAwesomeAdmin()
        {
        }
    }
  3. 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.


Top