定制 wpackagist-plugin/wpal-autoload 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wpackagist-plugin/wpal-autoload

Composer 安装命令:

composer require wpackagist-plugin/wpal-autoload

包简介

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

README 文档

README

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

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

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

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

wpackagist-plugin/wpal-autoload 适用场景与选型建议

wpackagist-plugin/wpal-autoload 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 98 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 02 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「plugin」 「wordpress」 「wpal-autoload」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 wpackagist-plugin/wpal-autoload 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 wpackagist-plugin/wpal-autoload 我们能提供哪些服务?
定制开发 / 二次开发

基于 wpackagist-plugin/wpal-autoload 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 98
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 11
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL3
  • 更新时间: 2018-02-13