PHPackages                             imranz/wp-autoload - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. imranz/wp-autoload

Abandoned → [wpackagist-plugin/wpal-autoload](/?search=wpackagist-plugin%2Fwpal-autoload)Wordpress-plugin[Utility &amp; Helpers](/categories/utility)

imranz/wp-autoload
==================

 Wp Autoload with Namespaces (For better and clean plugin code using OOP)

1.1.2(8y ago)0181GPL3PHPPHP &gt;=5.3.2

Since May 23Pushed 8y ago1 watchersCompare

[ Source](https://github.com/mrimran/wpal-autoload)[ Packagist](https://packagist.org/packages/imranz/wp-autoload)[ Docs](https://github.com/mrimran/wpal-autoload)[ RSS](/packages/imranz-wp-autoload/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (5)DependenciesVersions (14)Used By (0)

A plugin to write better plugin code (Written for Developers by a Developer)
============================================================================

[](#a-plugin-to-write-better-plugin-code-written-for-developers-by-a-developer)

A Plugin that is going facilitate use of Namespaces and making it easier to load files using Namespaces in other plugins. It makes possible to get rid of `include_once, require_once, include and require` as all of these methods make your code look uglier and it becomes difficult to maintain that code. As to include other classes or functions properly you need to append some paths and then have to mention the file name with the exact path.

This plugin needs you freedom of writing your code and organizing it based on your needed directory structure.

Guidlines
---------

[](#guidlines)

The only guidelines you need to follow are below:

- Namespace your classes and functions which you are separating so anything placed in `wp-content/plugins/TestPlugin/inc` should be namespaced as `TestPlugin\inc`. Whereas anything placed in `wp-content/plugins/TestPlugin/Inc` would be namespaced as `TestPlugin\Inc`.
- Filename should be same as of class name, but case doesn't matter because if Class name is `Test` and the file name is `test.php`, the autoloader would still be able to load the correct file.

Usage
-----

[](#usage)

Now it's time to see how it'll help you to maintain your code if you are following the above guidelines to maintain your code via `Namespaces`.

In your main plugin file add below line:

```
include_once(WP_PLUGIN_DIR . "/wpal-autoload/wpal-autoload.php" );

```

Code to include classes and functions

```
wpal_load(PluginNamespace\SubNamespace\ClassName);

//or in case calling from the code which comes in same namespace use the below code
wpal_load(ClassName::class);

//now after using the above code the class or fuction is now included and can be called or used
$classObj = new ClassName($param1, $param2);

```

Even without using the above code you can directly create instances of the classes, as the plugin would automatically include those files and will return the instance.

```
/* wpal_create_single_instance: will only create a single instance of the class and save it for later use so this will
 * make sure only one instance of the class is created.
 */
wpal_create_single_instance(PluginNamespace\SubNamespace\ClassName);
//or depending on your namespace
wpal_create_single_instance(ClassName::class);

/* wpal_create_instance: will first check if the instance is already created by wpal_single_create_instance,
 * if found would use that otherwise would create new one.
 */
wpal_create_instance(PluginNamespace\SubNamespace\ClassName);
//or depending on your namespace
wpal_create_instance(ClassName::class);

/* wpal_new_instance: will always create new instance of the class.
 */
wpal_new_instance(PluginNamespace\SubNamespace\ClassName);
//or depending on your namespace
wpal_new_instance(ClassName::class);

//So now you don't need to write $classObj = new ClassName(), you can just use those methods to create it.

```

Installation
------------

[](#installation)

- Download the plugin and rename it to `wpal-autoload` or `WpalAutoload` then place it in `wp-content/plugins/` folder.
- Login in to your admin and enable the plugin to use it.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Recently: every ~65 days

Total

12

Last Release

3013d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/747829f637242e569a991fe152b8543522b5b2f50fe365b5addc64f08c0b6f10?d=identicon)[imranz](/maintainers/imranz)

---

Top Contributors

[![mrimran](https://avatars.githubusercontent.com/u/6545893?v=4)](https://github.com/mrimran "mrimran (17 commits)")

---

Tags

pluginwordpresswpal-autoload

### Embed Badge

![Health badge](/badges/imranz-wp-autoload/health.svg)

```
[![Health](https://phpackages.com/badges/imranz-wp-autoload/health.svg)](https://phpackages.com/packages/imranz-wp-autoload)
```

###  Alternatives

[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.6k](/packages/afragen-git-updater)[webdevstudios/cmb2-attached-posts

Custom field for CMB2 for creating post relationships.

13565.5k](/packages/webdevstudios-cmb2-attached-posts)[iceicetimmy/acf-post-type-selector

Post type selector for Advanced Custom Fields.

559.0k](/packages/iceicetimmy-acf-post-type-selector)[balbuf/composer-wp

Manage WordPress core, plugins, and themes with composer.

173.6k](/packages/balbuf-composer-wp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
