পিএইচপি-তে:
- আমি কখন
requireবনাম ব্যবহার করা উচিতinclude? - আমি কখন
require_onceবনাম ব্যবহার করা উচিতinclude_once?
পিএইচপি-তে:
requireবনাম ব্যবহার করা উচিত include?require_onceবনাম ব্যবহার করা উচিত include_once?উত্তর:
আছে requireএবং include_onceপাশাপাশি।
সুতরাং আপনার প্রশ্ন করা উচিত ...
requireবনাম ব্যবহার করা উচিত include?require_onceবনাম ব্যবহার করা উচিত?require1 এর উত্তর এখানে বর্ণিত হয়েছে ।
প্রয়োজনীয় () ফাংশনটি () অন্তর্ভুক্ত করার জন্য অভিন্ন, এটি ভিন্নভাবে ত্রুটিগুলি পরিচালনা করে। যদি কোনও ত্রুটি দেখা দেয় তবে অন্তর্ভুক্ত () ফাংশনটি একটি সতর্কতা উত্পন্ন করে তবে স্ক্রিপ্টটি কার্যকর করা চালিয়ে যাবে। প্রয়োজনীয় () একটি মারাত্মক ত্রুটি তৈরি করে এবং স্ক্রিপ্টটি বন্ধ হয়ে যায়।
2 এর উত্তর এখানে পাওয়া যাবে ।
প্রয়োজনীয়_অেন্স () বিবৃতিটি () প্রয়োজনের অনুরূপ, পিএইচপি ব্যতীত ফাইলটি ইতিমধ্যে অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করবে এবং যদি তা হয় তবে এটি আবার অন্তর্ভুক্ত (প্রয়োজনীয়) না করে।
require_once()রয়েছে তবে দুটির চেয়ে দ্রুততর হবে
ব্যবহার
আপনার অ্যাপ্লিকেশন দ্বারা
যখন ফাইলের প্রয়োজন হয় তখন প্রয়োজন , উদাহরণস্বরূপ একটি গুরুত্বপূর্ণ বার্তা টেমপ্লেট বা কনফিগারেশন ভেরিয়েবলযুক্ত একটি ফাইল যা অ্যাপ্লিকেশনটি ব্রেক করবে না।
প্রযোজনা_অনসেস
যখন ফাইলটিতে এমন অন্তর্ভুক্ত থাকে যা পরবর্তী অন্তর্ভুক্তিতে একটি ত্রুটি তৈরি করে, যেমন
function important() { /* important code */}আপনার অ্যাপ্লিকেশনটিতে অবশ্যই প্রয়োজন হয় তবে যেহেতু ফাংশনগুলি পুনরায় ঘোষিত করা যায় না তা আবার যুক্ত করা উচিত নয়।
অন্তর্ভুক্ত
কখন ফাইলটি প্রয়োজন হয় না এবং আবেদন প্রবাহ যখন পাওয়া যেমন চালিয়ে যাওয়া উচিত,
বর্তমান সুযোগ বা কিছু থেকে ভেরিয়েবল উল্লেখ টেমপ্লেটের জন্য মহান
_চ্ছিক
নির্ভরতা অন্তর্ভুক্ত যা পরবর্তী লোড বা ত্রুটিযুক্ত রিমোট ফাইল অন্তর্ভুক্তিতে ত্রুটি তৈরি করবে যা HTTP ওভারহেডের কারণে আপনি দুবার ঘটতে চান না
তবে মূলত, কখন ব্যবহার করবেন তা আপনার বিষয়।
include? include_once? require? require_once?
আমার পরামর্শটি কেবলমাত্র require_once99.9% সময় ব্যবহার করা ।
ব্যবহার requireবা includeপরিবর্তে যে বোঝা আপনার কোড পুনর্ব্যবহারযোগ্য অন্যত্র, অর্থাত্ যে স্ক্রিপ্ট আপনি কাছে করছি আসলে নয় চালানো তৈরীর পরিবর্তে কোড প্রাপ্তিসাধ্য একটি বর্গ বা কিছু ফাংশন লাইব্রেরি।
যদি আপনার প্রয়োজন হয় / কোড সহ যে ঘটনাস্থলে কার্যকর হয়, এটি প্রক্রিয়াজাতীয় কোড এবং আপনার একটি নতুন দৃষ্টান্ত জানতে হবে । অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং, ফাংশন-ভিত্তিক প্রোগ্রামিং বা ফাংশনাল প্রোগ্রামিংয়ের মতো।
আপনি যদি ইতিমধ্যে ওও বা ক্রিয়ামূলক প্রোগ্রামিং করে থাকেন include_onceতবে ব্যবহার করা বেশিরভাগ ক্ষেত্রেই বিলম্ব হতে চলেছে যেখানে স্ট্যাকের মধ্যে আপনি বাগ / ত্রুটি খুঁজে পান find আপনি কী জানতে চান যে ফাংশনটি do_cool_stuff()যখন আপনি পরে এটির জন্য কল করতে যান তখন পাওয়া যায় না বা আপনি যে মুহুর্তটি লাইব্রেরির প্রয়োজনে এটি উপলব্ধ হওয়ার প্রত্যাশা করেন? সাধারণত, আপনার প্রয়োজন এবং প্রত্যাশিত কিছু না পাওয়া গেলে অবিলম্বে জানা ভাল, তাই কেবল ব্যবহার করুন require_once।
বিকল্পভাবে, আধুনিক ওওপি-তে, কেবলমাত্র আপনার ক্লাসগুলি ব্যবহারের পরে চালিত করুন।
includeহ'ল পরিবারটি সাধারণত একটি সম্পূর্ণ খারাপ ধারণা (কারণ এটি বিদ্যমান না থাকার কোনও সম্ভাবনা রয়েছে এমন ফাইলগুলি অন্তর্ভুক্ত করা খুব বিরল), এবং এটির বাইরে require_onceএবং require, আপনার ব্যবহার করা উচিতrequire_once যখন যে ফাইল সহ সংজ্ঞায়িত ফাংশন বা ক্লাস হতে অন্য কোথাও ব্যবহৃত হয় বা ডাটাবেস সংযোগের বস্তুর মতো সিঙ্গেলন ইনস্ট্যান্ট করে এবং requireফাইল অন্তর্ভুক্ত করার সাথে সাথে স্টাফ করে এমন ফাইলগুলি অন্তর্ভুক্ত করার জন্য ব্যবহার করে । যে কোনও বৃহত ওয়েব অ্যাপ্লিকেশনে, পরবর্তী ধরণের অন্তর্ভুক্তটি অস্বাভাবিক।
require_onceসম্ভবত বেশিরভাগ সময় ব্যবহার করা প্রার্থী। পছন্দগুলির মধ্যে ছোট ছোট ওভারহেড পার্থক্য দেওয়া, requireস্ক্রিপ্ট থামানো নিশ্চিত করে, আমি অনেকগুলি পরিস্থিতিতে ভাবতে পারি না যেখানে কোনও ফাইল অন্তর্ভুক্ত না করে কোনও অ্যাপ্লিকেশন বেঁচে থাকতে পারে। এবং _onceডুপ ইস্যু থেকে রক্ষা করে। যে কেউ দ্বিমত পোষণ করতে পারে তারা জানে যে তারা কী করছে তা অ্যাপ্লিকেশন বা দৃশ্যের জন্য উপযুক্ত যে কোনওটি চয়ন করতে পারে।
_অনস ফাংশন এবং _অনস ফাংশন ব্যতীত পার্থক্য: বিন্যাস ছাড়াই পুনরায় অন্তর্ভুক্ত করা হবে যদিও পিচপি পিছু পিছু পিএনপি অন্তর্ভুক্ত ফাইলগুলিতে নজর রাখে এবং কেবল একবার অন্তর্ভুক্ত করবে।
প্রয়োজন এবং অন্তর্ভুক্ত মধ্যে পার্থক্য: একটি প্রয়োজনীয় ফাইল খুঁজে পাওয়া যায় নি পিএইচপি একটি মারাত্মক ত্রুটি নির্গত করবে যখন অন্তর্ভুক্ত শুধুমাত্র একটি সতর্কতা নির্গত হবে।
include() যদি এটি ফাইলটি অন্তর্ভুক্ত না করতে পারে তবে একটি সতর্কতা নিক্ষেপ করবে, তবে স্ক্রিপ্টের বাকী অংশটি চলবে।
require() একটি নিক্ষেপ করা হবে E_COMPILE_ERROR এবং স্ক্রিপ্টটি থামিয়ে দেবে যদি এতে ফাইলটি অন্তর্ভুক্ত না করা যায়।
দ্য include_once()require_once()যদি ইতিমধ্যে অন্তর্ভুক্ত করা থাকে এবং ফাংশনগুলি ফাইলটিকে দ্বিতীয়বার অন্তর্ভুক্ত করবে না।
নিম্নলিখিত ডকুমেন্টেশন পৃষ্ঠা দেখুন:
যখনই আপনি যখন require_once()ব্যবহার করছেন তখন অন্য ফাইল অন্তর্ভুক্ত করার জন্য একটি ফাইলের মধ্যে ব্যবহার করা যেতে পারে যখন আপনার বর্তমান ফাইলে কেবলমাত্র একবারে ডাকা ফাইলটির প্রয়োজন হয়। এখানে উদাহরণ হিসাবে আমি একটি test1.php আছে।
<?php
echo "today is:".date("Y-m-d");
?>
এবং অন্য একটি ফাইলের মধ্যে আমি টেস্ট 2.php নামকরণ করেছি
<?php
require_once('test1.php');
require_once('test1.php');
?>
যেহেতু আপনি এম 1 টি পরীক্ষা 1 ফাইলটি প্রয়োজনীয়ভাবে দেখছেন তবে ফাইলটি একবার টেস্ট 1 অন্তর্ভুক্ত করবে এবং দ্বিতীয়বার কল করার জন্য এটিকে অগ্রাহ্য করা হবে। এবং স্থগিত না করে একবারে আউটপুট প্রদর্শিত হবে।
আপনি যখনই 'অন্তর্ভুক্ত_আঁস () ব্যবহার করছেন তখন যখনই বর্তমান ফাইলে একাধিকবার কল করা ফাইলের প্রয়োজন হবে তখন অন্য কোনও ফাইল অন্তর্ভুক্ত করার জন্য কোনও ফাইল ব্যবহার করা যেতে পারে। এখানে উদাহরণে আমার কাছে একটি ফাইল আছে যা test3.php নামে আছে।
<?php
echo "today is:".date("Y-m-d");
?>
এবং অন্য একটি ফাইল যা আমি test4.php নামকরণ করেছি
<?php
include_once('test3.php');
include_once('test3.php');
?>
আপনি টেস্ট 3 ফাইল সহ মিটি দেখছেন যে ফাইলটি একবারে অন্তর্ভুক্ত করবে তবে পরবর্তী কার্যনির্বাহীকরণ বন্ধ করবে।
আপনার ক্লাস এবং ফাংশন সংজ্ঞা ফাইলগুলিতে সংগঠিত রাখা উচিত।
নির্ভরতা (শ্রেণি, ফাংশন, ধ্রুবক) require_once()লোড করতে ব্যবহার করুন ।
টেমপ্লেটের মতো ফাইলগুলিrequire() লোড করতে ব্যবহার করুন ।
include_once()Depend চ্ছিক নির্ভরতা (শ্রেণি, ফাংশন, ধ্রুবক) লোড করতে ব্যবহার করুন ।
include()Load চ্ছিক টেম্পলেট-মতো ফাইল লোড করতে ব্যবহার করুন ।
এই প্রশ্নটি সাত বছর আগে জিজ্ঞাসা করা হয়েছিল, এবং কোনও উত্তরই এই প্রশ্নের জন্য ব্যবহারিক সহায়তা দেয় না। আধুনিক পিএইচপি প্রোগ্রামিংয়ে আপনি সাধারণত required_onceনিজের অটোলোডার ক্লাসটি অন্তর্ভুক্ত করার জন্য কেবল একবার ব্যবহার করেন (প্রায়শই সুরকার অটোলোডার), এবং এটি আপনার সমস্ত শ্রেণি এবং ফাংশন লোড করে দেবে ( composer.jsonসমস্ত ফাইলগুলিতে উপলভ্য হওয়ার জন্য ফাংশন ফাইলগুলিতে স্পষ্টভাবে সংযোজন করা দরকার )। যদি কোনও কারণে আপনার শ্রেণি অটোলোডার থেকে লোডযোগ্য না হয় আপনি require_onceএটি লোড করতে ব্যবহার করেন।
কিছু অনুষ্ঠান রয়েছে যা আমাদের ব্যবহার করা উচিত require। উদাহরণস্বরূপ, আপনার যদি সত্যিই বড় অ্যারে সংজ্ঞা থাকে এবং আপনি এটি আপনার শ্রেণীর সংজ্ঞা উত্স কোডটিতে যুক্ত করতে চান না আপনি পারেন:
<?php
// arr.php
return ['x'=>'y'];
<?php
//main.php
$arr= require 'arry.php'
আপনি যে ফাইলটি অন্তর্ভুক্ত করতে ইচ্ছুক সেই ফাইলটিতে যদি নির্বাহযোগ্য কিছু থাকে বা আপনাকে প্রায় সবসময় ব্যবহারের প্রয়োজন হয় এমন কিছু ভেরিয়েবল ঘোষণা করে requireকারণ আপনি যদি require_onceপ্রথম স্থান বাদে ব্যবহার করেন তবে আপনার কোডটি কার্যকর করা হবে না এবং / অথবা আপনার ভেরিয়েবল নিঃশব্দে আরম্ভ করবে না, ফলে বাগগুলি সৃষ্টি হয় ইঙ্গিত করা একেবারে শক্ত।
এটির জন্য কোনো ব্যবহারিক প্রয়োগের ক্ষেত্রে দেখা যায় includeএবং include_onceসত্যিই।
include()আপনার টেম্প্লেটিং ইঞ্জিনটি প্রয়োগ করতে আউটপুট বাফারে আবৃত একটি ব্যবহার করেন ।
require()বড় ফাইলগুলি বিভক্ত করতে ব্যবহার করে না।
require_onceকোনও ফাংশনের ভিতরে পিএইচপিমেইলার ব্যবহার করার সময় আমি একই সমস্যার মুখোমুখি হয়েছিলাম এবং আমার অটোলোডার $mailকোডের পরে প্রয়োজনীয় ভেরিয়েবলটি সংজ্ঞায়িত করে , তাই পরবর্তীটি require_onceউপেক্ষা করা যায়, যা $mailআরম্ভ করা হয়নি! সমাধানটি ছিল কেবল requireফাংশন কল করার পরে ব্যবহার করা।
requireকরেন না ?
পার্থক্য হ'ল কমান্ডগুলি তৈরি করা ত্রুটিতে। এর সাথে require, আপনি যে ফাইলটি ব্যবহার করতে চান তা সত্যই প্রয়োজনীয় এবং E_ERRORএটি যদি খুঁজে না পাওয়া যায় তবে এটি উত্পন্ন করে ।
require()include()ব্যর্থতা ব্যতীত এটির মতোই এটি মারাত্মকE_ERRORস্তরের ত্রুটি তৈরি করবে ।
include শুধুমাত্র একটি উত্পন্ন E_WARNINGকম বেশি নীরব থাকলে ব্যর্থ হলেই ত্রুটি ।
সুতরাং ফাইলটি যদি বাকী কোডটি কাজ করার প্রয়োজন হয় এবং আপনি স্ক্রিপ্টটি ফাইলটি ব্যর্থ করতে চান তবে এটি ব্যবহার করুন।
এর জন্য *_once():
include_once()কোনও স্ক্রিপ্টের নির্দিষ্ট প্রয়োগের সময় একই ফাইলটি একাধিকবার অন্তর্ভুক্ত ও মূল্যায়ন করা হতে পারে এমন ক্ষেত্রে ব্যবহার করা যেতে পারে, সুতরাং এই ক্ষেত্রে এটি ফাংশন পুনরায় সংজ্ঞা, ভেরিয়েবল মান পুনর্বিন্যাস ইত্যাদির মতো সমস্যা এড়াতে সহায়তা করতে পারে where
require_once()অবশ্যই অবশ্যই প্রযোজ্য ।
রেফারেন্স: require(),include_once()
requireE_COMPILE_ERROR দেয়, E_ERROR নয়।
অনুমোদনের মতো সমালোচনামূলক অংশ প্রয়োজন এবং অন্যান্য সমস্তগুলি অন্তর্ভুক্ত করে।
একাধিক অন্তর্ভুক্ত কেবল খুব খারাপ ডিজাইন এবং এড়াতে অবশ্যই এড়ানো উচিত। সুতরাং, * _আনস আসলেই কিছু যায় আসে না।
অন্তর্ভুক্ত করুন / দরকার আপনি একই ফাইল একবার এছাড়াও চেয়ে বেশি অন্তর্ভুক্ত করতে পারে:
() অন্তর্ভুক্ত করার জন্য প্রয়োজনীয় () অনুরূপ ব্যর্থতা ব্যতীত এটি একটি মারাত্মক E_COMPILE_ERROR স্তর ত্রুটিও তৈরি করবে। অন্য কথায় এটি স্ক্রিপ্টটি থামিয়ে দেবে যেখানে অন্তর্ভুক্ত রয়েছে () কেবলমাত্র একটি সতর্কতা (E_WARNING) প্রকাশ করে যা স্ক্রিপ্টটি চালিয়ে যাওয়ার অনুমতি দেয়।
পিএইচপি বাদে অন্তর্ভুক্ত / প্রয়োজনীয়তা সমান, ফাইলটি ইতিমধ্যে অন্তর্ভুক্ত করা হয়েছে কিনা তা যাচাই করবে এবং যদি তা হয় তবে এটি আবার অন্তর্ভুক্ত (প্রয়োজনীয়) করবে না।
include()এটি কোনও ফাইল না পেলে একটি সতর্কতা তৈরি করবে, তবে require_once()মারাত্মক ত্রুটি ঘটবে।
ফাইলটি এর আগে অন্তর্ভুক্ত করা হলে আর একটি বিষয়। তারপরে require_once()এটি আবার অন্তর্ভুক্ত করবে না।
আমি নীচের মত ফাংশন ব্যবহার করছিলাম:
function doSomething() {
require_once(xyz.php);
....
}
Xyz.php এ ধ্রুবক মান ঘোষণা করা হয়েছিল।
আমাকে অন্য পিএইচপি স্ক্রিপ্ট ফাইল থেকে এই ডোজ কিছু () ফাংশন কল করতে হবে।
তবে লুপে এই ফাংশনটি কল করার সময় আমি আচরণটি পর্যবেক্ষণ করেছি, প্রথম পুনরাবৃত্তির জন্য ডসোমথিং () এর মধ্যে স্থির মান পাওয়া যাচ্ছিল xyz.phpতবে পরে প্রতিটি পুনরাবৃত্তি doSomething()স্থির মানগুলিতে ঘোষণা করতে সক্ষম হয় নিxyz.php ।
আমি থেকে সুইচিং দ্বারা আমার সমস্যার সমাধান require_once()করার জন্য include(), আপডেট doSomething()কোড নিচে দেওয়া হল:
function doSomething() {
include(xyz.php);
....
}
এখন প্রতিটি পুনরাবৃত্তির কলটি doSomething()স্থির মানগুলিতে সংজ্ঞায়িত হয় xyz.php।
ম্যানুয়াল থেকে :
require()include()ব্যর্থতা ব্যতীত এটির মতোই এটি মারাত্মকE_COMPILE_ERRORস্তরের ত্রুটি তৈরি করবে । অন্য কথায়, এটি স্ক্রিপ্টটি থামিয়ে দেবে যেখানেinclude()কেবলমাত্র একটি সতর্কতা প্রেরণ করা হয় (E_WARNING) যা স্ক্রিপ্টটি চালিয়ে যেতে দেয়।
_once()বৈকল্পিকের ক্ষেত্রেও একই কথা ।
PSR-0 / PSR-4অটোলয়েডারদের যুগে, বিবৃতিগুলির কোনওটি ব্যবহার করা সম্পূর্ণরূপে অপ্রয়োজনীয় হতে পারে আপনার প্রয়োজন অনুসারে আপনার কোডটিতে কিছু ফাংশন / ক্লাস সরবরাহ করা প্রয়োজন (অবশ্যই, আপনি এখনও require_onceআপনার বুটস্ট্র্যাপ ফাইল এবং includeটেম্পলেটগুলিতে স্বয়ংক্রিয়ভাবে চালিত হওয়া প্রয়োজন যদি আপনি এখনও পিএইচপি টেম্পলেট ইঞ্জিন হিসাবে ব্যবহার করুন)।
যখন ব্যবহার করা উচিত requireবা include?
requireএবং includeফাংশন একই কাজের, অর্থাত্ অন্তর্ভুক্ত এবং নির্বাচিত ফাইল মূল্যায়ণ না, কিন্তু পার্থক্য আছে requireএকটি মারাত্মক ত্রুটি হবে যখন নির্বাচিত ফাইল অবস্থান অবৈধ বা যেহেতু কোন ভুল হয়include একটি সতর্কবার্তা উৎপন্ন এবং কোড এক্সিকিউশন অব্যাহত থাকবে।
সুতরাং আপনি requireযে ফাইলটি অন্তর্ভুক্ত করার চেষ্টা করছেন সেটি হ'ল সিস্টেমের কেন্দ্রস্থল এবং বাকী কোডটিতে একটি বিশাল প্রভাব ফেলতে পারে এবং আপনি এটি ব্যবহার করতে পারেন সেই ক্ষেত্রে আপনি ফাংশনটি ব্যবহার করতে পারেনinclude যে ফাইলটি অন্তর্ভুক্ত করার চেষ্টা করছেন সেটি হ'লে আপনি ফাংশনটি কিছু কম গুরুত্বপূর্ণ কোড সহ সাধারণ ফাইল।
এবং আমার ব্যক্তিগত প্রস্তাবনাটি (কম গুরুত্বপূর্ণ কোডের জন্য) requireআপনার কোডের বিকাশের পর্যায়ে থাকাকালীন সর্বত্র ফাংশনের জন্য যাওয়া যেমন আপনি কোডটি ডিবাগ করতে পারেন এবং পরে উত্পাদনে নিয়ে যাওয়ার আগে requireফাংশন দ্বারা সমস্ত ফাংশন প্রতিস্থাপন includeকরতে পারেন যদি আপনি মিস করেন তবে যে কোনও বাগ এটি শেষ ব্যবহারকারীর উপর প্রভাব ফেলবে না এবং বাকী কোডটি সঠিকভাবে কার্যকর করে ...
যখন কোন ব্যবহার করা উচিত require_onceবাrequire?
মধ্যে মৌলিক পার্থক্য requireএবং require_onceহয় require_onceকিনা ফাইল আগে থেকেই অন্তর্ভুক্ত বা করা হয় না তা চেক করবে যদি এটি ইতিমধ্যেই তারপর অন্তর্ভুক্ত করা হয় এটা যেহেতু ফাইল অন্তর্ভুক্ত করবে নাrequire ফাংশন ফাইল কিনা ফাইল আগে থেকেই অন্তর্ভুক্ত করা হয় নির্বিশেষে বা না অন্তর্ভুক্ত করা হবে।
আপনি যদি কোডের কিছু অংশ বারবার requireঅন্তর্ভুক্ত করতে চান তবে আপনি যদি আবার আপনার কোডটিতে কিছু কোড অন্তর্ভুক্ত করতে চান তবে ব্যবহার করুন require_once।
আপনার যখন কোনও শ্রেণি, ফাংশন বা নির্ভরতা লোড করতে হয় তখন ব্যবহারের জন্য ফাংশন প্রয়োজন।
আপনি যখন টেমপ্লেট-স্টাইলযুক্ত ফাইলটি লোড করতে চান তখন ব্যবহারের মধ্যে ফাংশন অন্তর্ভুক্ত থাকে
আপনি যদি এখনও বিভ্রান্ত হয়, শুধু ব্যবহার Require_once সব সময়ের জন্য।
এগুলি ফাইল সহ সমস্ত উপায়।
প্রয়োজন মানে এটির প্রয়োজন। Require_once এর অর্থ এটির প্রয়োজন হবে তবে এটি কেবল একবার প্রয়োজন। অন্তর্ভুক্ত করার অর্থ এটি কোনও ফাইল অন্তর্ভুক্ত করবে তবে এটি চালিয়ে যাওয়ার দরকার নেই।
উদাহরণ:
Require 'filename'
Require_once 'filename'
Include 'filename'
এখানে একটি অন্তর্ভুক্ত_অনসেস ফাংশন রয়েছে যা একবার কোনও ফাইল অন্তর্ভুক্ত করে।
Include_once 'filename'
আমার ফোন থেকে টাইপ করার সময় আমার কাছে থাকা বড় বড় অক্ষরগুলি ব্যবহার করবেন না।
একটি জিনিস আমি লক্ষ্য করেছি, অন্তর্ভুক্ত ব্যবহার করার সময় আমি কেবল অন্তর্ভুক্ত ফাইল থেকে অন্তর্ভুক্ত ফাইল ফাংশন অ্যাক্সেস করতে পারি। প্রয়োজনীয়_অনসেসের সাহায্যে, আমি দ্বিতীয় ফাংশন_অনসেস ফাইলে সেই ফাংশনটি চালাতে পারি।
এছাড়াও: আমি যুক্ত করার পরামর্শ দিই
if(file_exists($RequiredFile)){
require_once($RequiredFile);
}else{
die('Error: File Does Not Exist');
}
কারণ যখন প্রয়োজনীয়_অ্যান্স পৃষ্ঠাটি হত্যা করে, এটি কখনও কখনও আপনার ওয়েবসাইট ফাইলগুলির ডিরেক্টরি প্রতিধ্বনি করতে পারে
এখানে ফাইলগুলি প্রয়োজনের জন্য তৈরি করা একটি কাস্টম ফাংশন রয়েছে:
function addFile($file, $type = 'php', $important=false){
//site-content is a directory where I store all the files that I plan to require_once
//the site-content directory has "deny from all" in its .htaccess file to block direct connections
if($type && file_exists('site-content/'.$file.'.'.$type) && !is_dir('site-content/'.$file.'.'.$type)){
//!is_dir checks that the file is not a folder
require_once('site-content/'.$file.'.'.$type);
return 'site-content/'.$file.'.'.$type;
}else if(!$type && file_exists('site-content/'.$file) && !is_dir('site-content/'.$file)){
//if you set "$type=false" you can add the file type (.php, .ect) to the end of the "$file" (useful for requiring files named after changing vars)
require_once('site-content/'.$file);
return 'site-content/'.$file;
}else if($important){
//if you set $important to true, the function will kill the page (which also prevents accidentally echoing the main directory path of the server)
die('Server Error: Files Missing');
return false;
}else{
//the function returns false if the file does not exist, so you can check if your functions were successfully added
return false;
}
}
ব্যবহারের উদাহরণ:
$success = addFile('functions/common');
if($success){
commonFunction();
}else{
fallbackFunction();
}
মূলত, আপনার যদি কোনও ভুল পথের প্রয়োজন হয়, পিএইচপি মারাত্মক ত্রুটি ছুঁড়ে দেয় এবং শাটডাউন ফাংশন বলা হয়, তবে আপনি যখন কোনও ভুল পথ অন্তর্ভুক্ত করেন, পিএইচপি বাস্তবায়ন চালিয়ে যাবে, তবে এটি কেবল একটি সতর্কতা প্রদর্শন করবে যে ফাইলটি বিদ্যমান নেই।
প্রয়োজনীয় ইংরেজী শব্দ থেকে , পিএইচপিকে বলা হয় যে পৃষ্ঠা বা ফাইলটির সম্পাদন প্রয়োজনীয় ফাইলের উপর নির্ভর করে।
আমার অভিজ্ঞতা থেকে, কনফিগারেশন ফাইল, ডাটাবেস ক্লাস এবং অন্যান্য গুরুত্বপূর্ণ ইউটিলিটিগুলির মতো গুরুত্বপূর্ণ ফাইলগুলির প্রয়োজনীয় হওয়া স্বাভাবিক।
আপনি শর্তাধীন কোনও ক্লায়েন্ট লাইব্রেরি লোড করতে চান, বা আপনি এটি ব্যবহার করতে যাচ্ছেন কিনা তা এগিয়ে যান এবং এটি লোড করতে চান তা প্রায়শই ব্যাপার।
এখানে দৃ concrete় উদাহরণ; পিসিজে কী বলেছে তা বিশদ দিয়ে।
বলুন যে আপনার কাছে আপনার ডাটাবেস ব্যবহারকারীর নাম এবং পাসওয়ার্ড (conf.php) সংরক্ষণ করার একটি কনফিগারেশন ফাইল রয়েছে:
<?php
//my site configuration file
//For Database
$location='localhost';
$dbuser='yourname';
$userpw='yourpassword';
$database='nameofdatabase';
?>
এবং একটি স্ট্যাটিক ফাংশন সহ একটি বর্গ যা ডেটাবেস ব্যবহার করে:
<?php
class UsedInLoop {
public static function databaseQuery(){
require(/path/to/conf.php); //require_once will not work here
$db = new mysqli($location, $dbuser, $userpw, $database);
//yada yada yada
}
}
?>
এবং সেই স্ট্যাটিক ফাংশনটি অন্য ফাংশনের অভ্যন্তরে ব্যবহৃত হয় যা লুপের অভ্যন্তরে পুনরাবৃত্তি বলা হয়:
<?php
require_once('path/to/arbitraryObject.php'); //either will likely be OK at this level
$obj = new arbitraryObject();
foreach($array as $element){
$obj->myFunction();
}
?>
আপনি কেবল একবার ক্লাসের প্রয়োজন / অন্তর্ভুক্ত করতে পারেন। যদি আপনার লুপের প্রতিটি পুনরাবৃত্তিতে এটির প্রয়োজন / অন্তর্ভুক্ত করা হয় তবে আপনি একটি ত্রুটি পাবেন। যাইহোক, প্রতিবার স্ট্যাটিক ফাংশন বলার সময় আপনার কনফ ফাইলটি আপনাকে অন্তর্ভুক্ত করতে হবে।
<?php
class arbitraryObject {
public function myFunction(){
require_once(/path/to/UsedInLoop.php); //This must be require_once. require() will not work
UsedInLoop::databaseQuery();
}
}
?>
অবশ্যই, এটিকে ফাংশনের বাইরে নিয়ে যাওয়া সেই সমস্যার সমাধান হতে পারে:
<?php
require(/path/to/UsedInLoop.php); //now require() is fine
class arbitraryObject {
public function myFunction(){
UsedInLoop::databaseQuery();
}
}
?>
আপনি যদি কোনও শ্রেণি লোড করার ওভারহেডের সাথে উদ্বিগ্ন না হন যা কেবলমাত্র কিছু নির্দিষ্ট শর্তে ব্যবহৃত হতে পারে এবং যখন না হয় তখন এটি লোড করতে চাই না।
requireএর চেয়ে বেশি ওভারহেড রয়েছে include, যেহেতু এটির আগে ফাইলটি বিশ্লেষণ করতে হবে। প্রতিস্থাপন করা হচ্ছে requiresসঙ্গে includesপ্রায়ই একটি ভাল অপ্টিমাইজেশান কৌশল।
requireফাইলের চেয়ে আর পার্স করে না include। এই _onceফাংশনগুলির প্রতিটিগুলির সংস্করণগুলির মধ্যে কিছুটা ওভারহেড থাকে তবে অন্যরা যেমন বলেছিলেন এটি বেশিরভাগ অ্যাপ্লিকেশনগুলিতে নগন্যতার কাছাকাছি।
শুধু ব্যবহার প্রয়োজন এবং অন্তর্ভুক্ত।
কারণ কীভাবে অন্তর্ভুক্ত_অনসেস বা প্রয়োজনীয়_অনসেস দিয়ে কাজ করবেন তা ভাবেন। এটি লগ ডেটা খুঁজছে যা অন্তর্ভুক্ত বা প্রয়োজনীয় পিএইচপি ফাইলগুলি সংরক্ষণ করে। সুতরাং এটি অন্তর্ভুক্ত এবং প্রয়োজনের চেয়ে ধীর।
if (!defined(php)) {
include 'php';
define(php, 1);
}
ঠিক এর মতো ব্যবহার করা হচ্ছে ...