প্রকল্প সম্পর্কে
PHP হলো ওয়েব ডেভেলপমেন্টের দিকে ঝুঁকানো একটি সাধারণ উদ্দেশ্যে ব্যবহৃত স্ক্রিপ্টিং ভাষা। এই রিপোজিটরি, php/php-src, PHP ইন্টারপ্রেটারের অফিসিয়াল সোর্স কোড ধারণ করে এবং এটি Modified BSD License (BSD-3-Clause)-এর অধীনে বিতরণ করা হয়।
README-তে ডকুমেন্টেশনের জন্য php.net/docs-এ অফিসিয়াল ম্যানুয়ালের দিকে ইঙ্গিত করা হয়েছে। যারা সোর্স থেকে বিল্ড করতে চান না তাদের জন্য প্রিবিউল্ট প্যাকেজ এবং বাইনারি উপলব্ধ: Windows বাইনারি windows.php.net থেকে আসে, এবং অন্যান্য সিস্টেমের জন্য ইনস্টলেশন নির্দেশিকা ম্যানুয়ালের ইনস্টলেশন অধ্যায়ে কভার করা হয়েছে।
সোর্স থেকে বিল্ড করার জন্য একটি ন্যূনতম বিল্ডের ক্ষেত্রে autoconf, bison এবং re2c প্রয়োজন; একটি ডিফল্ট বিল্ডের জন্য অতিরিক্ত libxml2 এবং libsqlite3 প্রয়োজন। README-তে Ubuntu, Fedora, macOS via Homebrew এবং macOS via MacPorts-এর জন্য প্যাকেজ ইনস্টলেশন কমান্ড তালিকাভুক্ত করা হয়েছে। বিল্ড ফ্লো হলো: ./buildconf চালানো যাতে configure তৈরি হয়, ./configure চালানো (ডেভেলপমেন্টের জন্য --enable-debug সুপারিশ করা হয়), তারপর make -j4, যেখানে জব সংখ্যা nproc দ্বারা রিপোর্ট করা উপলব্ধ কোরগুলোর সাথে আদর্শভাবে মিলে যাওয়া উচিত। Windows ব্যবহারকারীদের PHP wiki-তে একটি আলাদা ধাপে-ধাপে বিল্ড গাইডের দিকে নির্দেশিত করা হয়।
টেস্টিং একটি ব্যাপক বান্ডেল টেস্ট সুইট দ্বারা পরিচালিত হয় যা একটি সফল কম্পাইলের পর make test চালানো হয়। টেস্টগুলো ডিফল্টভাবে ১০টি সনাক্তকৃত লজিক্যাল প্রসেসর পর্যন্ত সমান্তরালভাবে চলে; TEST_PHP_ARGS বা TESTS-এ -jN ব্যবহার করে ওয়ার্কার সংখ্যা ওভাররাইড করা যায় এবং নির্দিষ্ট ডিরেক্টরিগুলোকে টার্গেট করা যায়, উদাহরণস্বরূপ make TESTS=tests/lang/ test। qa.php.net সাইট আরও টেস্টিং এবং কোয়ালিটি অ্যাসুরেন্স তথ্য অফার করে। একটি সফল বিল্ড এবং টেস্টের পর, make install PHP ইনস্টল করে, যা প্রিফিক্স এবং পারমিশনের উপর নির্ভর করে সুপারইউজার পারমিশন প্রয়োজন হতে পারে।
এক্সটেনশনগুলো অনেক প্রয়োজনীয় বান্ডেল এক্সটেনশনের বাইরে কার্যকারিতা যোগ করে। অতিরিক্ত এক্সটেনশনগুলো Packagist-এ PIE Extensions পেজে তালিকাভুক্ত করা হয়েছে এবং PIE (PHP Installer for Extensions) বা অব্যবহৃত PECL দিয়ে ইনস্টল করা যায়।
রিপোজিটরি ফর্ক করে এবং পুল রিকোয়েস্ট খোলার মাধ্যমে অবদান স্বাগতম। আলোচনা GitHub-এ হয় এবং এটি internals@lists.php.net ডেভেলপার মেলিং লিস্টেও প্রেরণ করা যেতে পারে। নতুন ফিচারগুলোর জন্য একটি গৃহীত RFC প্রয়োজন, যার বিবরণ wiki-র RFC এবং ভোটিং পেজে রয়েছে; বাগ ফিক্সের জন্য RFC প্রয়োজন নেই। কমিট মেসেজগুলোতে GitHub ইস্যুগুলোকে GH-NNNNNN হিসেবে বা পুরনো বাগ ট্র্যাকার টিকিটগুলোকে #NNNNNN হিসেবে উল্লেখ করা উচিত। README-তে আরও কন্ট্রিবিউটর ডকুমেন্টের লিঙ্ক রয়েছে: CONTRIBUTING.md, CODING_STANDARDS.md, ইন্টারনাল ডকুমেন্টেশন, মেলিং লিস্টের নিয়ম এবং রিলিজ প্রসেস। একটি ক্রেডিটস পেজ অবদানকারীদের তালিকাভুক্ত করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.