जल्दी से डालें, मैं वर्डप्रेस का उपयोग करके 'इको-सिस्टम' बनाने की कोशिश कर रहा हूं जहां मेरे पास कोर प्लगइन है और फिर अतिरिक्त ऐड-ऑन प्लगइन्स हैं।वर्डप्रेस पीएसआर -4 नामांकित प्लगइन एक और नामांकित प्लगइन तक पहुंच
अधिक गहराई से, प्रत्येक ऐड-ऑन प्लगइन को कोर प्लगइन को कार्य करने की आवश्यकता होगी। मैंने इसे WordPress मानक कोडिंग और फ़ाइल संरचना प्रथाओं का उपयोग करके हासिल किया है। मैं इस परियोजना दोबारा काम कर रहा हूँ अब नेमस्पेसिंग PSR-4, संगीतकार, बोवर उपयोग करने के लिए और आदि
स्टैंडर्ड WordPress स्थापित संगीतकार
"autoload": {
"psr-4": {
"CorePlugin\\Library\\": "library"
}
}
के माध्यम से
|
|__www
|
|___wp-admin
|
|___wp-content
| |
| |___plugins
| | |
| | |___my-core-plugin
| | | |
| | | |___library
| | | | |
| | | | |___class-post-register.php
| | | |
| | | |___vendor
| | | | |
| | | | |___autoload.php
| | | |
| | | |___composer.json
| | | |
| | | |___core.php
| | |
| | |___my-first-addon-plugin
| | | |
| | | |___library
| | | |
| | | |___vendor
| | | | |
| | | | |___autoload.php
| | | |
| | | |___composer.json
| | | |
| | | |___core.php
| | |
| | |___my-second-addon-plugin
| | | |
| | | |___library
| | | |
| | | |___vendor
| | | | |
| | | | |___autoload.php
| | | |
| | | |___composer.json
| | | |
| | | |___core.php
| | |
| |___themes
| | |
| | |___my-custom-theme
| |
| wp-includes
कोर प्लगइन psr4 उदाहरण कोर प्लगइन वर्ग
<?php
namespace CorePlugin\library;
class Post_Register {
private __construct() {
// ... code
}
private init() {
}
private register($data) {
// .. code to register a custom post for example.
}
}
पहले एक ऐड-ऑन प्लगइन
नीचे से ऐड-ऑन प्लगइन psr4 संगीतकार के माध्यम से
"autoload": {
"psr-4": {
"FirstAddon\\Library\\": "library"
}
}
कक्षा वह जगह है जहाँ मैं उलझन में हूँ। मैं एक अलग नाम स्थान में कोर प्लगइन से एक वर्ग का उपयोग करने की कोशिश कर रहा हूँ और मैं त्रुटि हो रही है:
Fatal error: Class 'CorePlugin\Library\Post_Register' not found in...
दोनों प्लगइन्स AutoLoad उनके संबंधित संगीतकार autoload फ़ाइलें उत्पन्न तो मैं हालांकि मैं use
करने में सक्षम हो जाएगा नामस्थान मैं PHP मैनुअल (http://php.net/manual/en/language.namespaces.php) के इस हिस्से में जाने से पहले पूछने के लिए यहां आया था, जहां मैं शायद उप नेमस्पेसिंग का प्रयास करूंगा।
<?php
namespace FirstAddon;
use CorePlugin\Library\Post_Register;
class First_Addon {
private __construct() {
// ... code
}
private init() {
}
private another_function() {
}
}
इसके अलावा, मैं ब्रैकेट के साथ उप नेमस्पेसिंग उपयोग करने के लिए संकोच कर रहा हूँ क्योंकि, उदाहरण के लिए, laravel में, use
foo \ पट्टी; और use
बार \ foo; इस तरह।
<?php namespace App\Services;
use App\User;
use Validator;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;
class Registrar implements RegistrarContract {