मैं विशिष्ट फ़ोल्डर में स्थित कस्टम कक्षाओं को लोड करने के लिए संगीतकार का उपयोग करने का प्रयास करता हूं।
यहाँ मेरी परियोजना संरचना है
public
|—index.php
src
|—classes
|— MyClass
|— MyClass.php
vendor
|—autoload.php
composer.json
सूचकांक.php
<?php
namespace ink;
require ( vendor/autoload.php );
use ink\src\classes\MyClass\MyClass;
$customclasse = new MyClass();
MyClass.php
<?php
namespace ink\src\classes\MyClass;
class MyClass {
public function __construct(){
}
}
संगीतकार.जेसन
{
autoload : {
psr-4 : {
ink\\ : src
}
}
}
मैं क्या गलत कर रहा हूँ? नामस्थान अच्छा कारण लगता है जब मुझे MyClass.php की आवश्यकता होती है, सबकुछ ठीक काम करता है, कक्षा लोड हो जाती है।
धन्यवाद
2 जवाब
आप एक src
स्तर को दोगुना कर रहे हैं।
ink\\ : src
द्वारा आप कह रहे हैं कि ink
के बाद कुछ भी src
फ़ोल्डर में है।
लेकिन आपकी कक्षा ink\src\classes\MyClass
नामस्थान में है।
तो यह src
+src/classes/MyClass
=src/src/classes/MyClass
पथ तक जुड़ जाता है।
तो आपको इसकी आवश्यकता होने की संभावना है:
{
autoload : {
psr-4 : {
ink\\src\\ : src
}
}
}
सबसे पहले, ऐसा लगता है कि आप PSR-4 विनिर्देश का सम्मान नहीं कर रहे हैं।
विनिर्देश के अनुसार कहते हैं:
पूरी तरह से योग्य वर्ग के नाम का निम्न रूप है:
\NamespaceName(\SubNamespaceNames)*\ClassName
फ़ोल्डर संरचना
├── composer.json
├── public
│ └── index.php
├── src
│ └── Classes
│ └── Models
│ └── MyClass.php
└── vendor
├── autoload.php
└── composer
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── ClassLoader.php
└── LICENSE
Index.php
<?php
require '../vendor/autoload.php';
use Ink\Classes\Models\MyClass;
$customclasse = new MyClass();
?>
संगीतकार.जेसन
{
"name": "app",
"type": "project",
"description": "app",
"autoload": {
"psr-4": { "Ink\\": "src/" }
}
}
MyClass.php
<?php
namespace Ink\Classes\Models;
class MyClass {
public function __construct(){
}
}
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।