প্রকল্প সম্পর্কে

TypeResolver এবং FqsenResolver হলো phpDocumentor-এর একটি PHP লাইব্রেরি, যা DocBlock-এ টাইপের জন্য PSR-5 স্পেসিফিকেশন বাস্তবায়ন করে। এটি দুটি রিজলভার প্রদান করে: একটি টাইপ এক্সপ্রেশনকে ভ্যালু অবজেক্টে রূপান্তর করে, এবং অন্যটি আংশিক স্ট্রাকচারাল এলিমেন্ট নামকে সম্পূর্ণ যোগ্য স্ট্রাকচারাল এলিমেন্ট নাম (FQSEN)-এ রিজলভ করে। TypeResolver যা হ্যান্ডেল করে: - PHP প্রিমিটিভ এবং সিউডো-প্রিমিটিভ যেমন string বা void (`@var string`, `@return void`) - কম্পোজিট টাইপ যেমন একটি টাইপের অ্যারে (`@var string[]`) - কম্পাউন্ড টাইপ যেমন ইউনিয়ন (`@var string|integer`) - অ্যারে এক্সপ্রেশন (`@var (string|TypeResolver)[]`) - অবজেক্ট এবং ইন্টারফেস, যার মধ্যে PHP 7.1-এ প্রবর্তিত nullable টাইপও রয়েছে, যা একটি Nullable অবজেক্টে মোড়ানো হয় FqsenResolver যা হ্যান্ডেল করে: - কনস্ট্যান্ট, ফাংশন, ক্লাস, ইন্টারফেস এবং ট্রেইট এক্সপ্রেশন - ক্লাস কনস্ট্যান্ট, প্রপার্টি এবং মেথড (যেমন `\MyNamespace\MyClass::myMethod()`) একটি মূল সক্ষমতা হলো আংশিক ক্লাস এবং এলিমেন্ট নামকে সম্পূর্ণ যোগ্য নামে প্রসারিত করা। এটি করার জন্য, রিজলভারগুলো একটি Context অবজেক্ট গ্রহণ করে, যা বর্তমান নেমস্পেস এবং যেকোনো নেমস্পেস অ্যালিয়াস/ইমপোর্ট বহন করে। Context ম্যানুয়ালি তৈরি করা যায়, অথবা ContextFactory-এর মাধ্যমে একটি রিফ্লেক্টর থেকে বা একটি নেমস্পেস এবং ফাইল সোর্স কোড থেকে তৈরি করা যায়। ইনস্টলেশন Composer-এর মাধ্যমে: `composer require phpdocumentor/type-resolver`। README-তে রানযোগ্য উদাহরণ রয়েছে এবং একটি examples ফোল্ডারের দিকে নির্দেশ করে। প্রকল্পটি MIT লাইসেন্সপ্রাপ্ত এবং বিল্ড স্ট্যাটাস, কভারেজ এবং কোড কোয়ালিটির জন্য QA, Coveralls এবং Scrutinizer ব্যাজ ব্যবহার করে।