আপনার পিএইচপি-তে কী বৈশিষ্ট্য থাকতে চান? [বন্ধ]


88

যেহেতু এখন ছুটির মরসুম এবং প্রত্যেকের ইচ্ছা শুভেচ্ছ তাই আমি ভাবছি - আপনি কোন ভাষার বৈশিষ্ট্যগুলি পিএইচপি যুক্ত করতে চান? আমি ভাষাটির জন্য কিছু ব্যবহারিক পরামর্শ / শুভেচ্ছায় আগ্রহী। ব্যবহারিক দ্বারা আমি বলতে চাই:

  1. ব্যবহারিকভাবে করা যায় এমন কিছু (না: "আমি চাই পিএইচপি আমার কোডের অর্থ কী তা অনুমান করিয়ে আমার জন্য বাগগুলি ঠিক করে" বা "আমি চাই যে কোনও কোড 5 এমএসের অধীনে কার্যকর হবে")
  2. এমন একটি জিনিসের জন্য যা পিএইচপি অন্য ভাষায় পরিবর্তন করার প্রয়োজন হয় না (এমন নয়: "আমি আশা করি তারা $ চিহ্নগুলি ফেলে রাখত এবং ব্রেসগুলির পরিবর্তে স্থান ব্যবহার কর" বা "আমার ইচ্ছা পিএইচপি সংকলিত, স্থিরভাবে টাইপ করা হত এবং এর নাম # ছিল")
  3. এমন কিছু কিছুর জন্য যা বিদ্যমান বিদ্যমান কোড ভাঙার প্রয়োজন হবে না (এটি নয়: "আসুন 500 ফাংশনগুলির নাম পরিবর্তন করুন এবং তাদের জন্য প্যারামিটার ক্রম পরিবর্তন করুন")
  4. কিছু যে আছে ভাষা বা এর কিছু মজার দৃষ্টিভঙ্গি পরিবর্তন (শুধুমাত্র: "আমি ইচ্ছুক এক্সটেনশন XYZ প্রোটোকল সমর্থন করার জন্য ছিল" বা "আমি আশা করি বাগ # 12345 পরিশেষে স্থির হয়ে")
  5. রেন্টের চেয়েও বেশি কিছু (না: "আমি চাই পিএইচপি এত খারাপভাবে চুষতে না পারে")

কারও কোন শুভেচ্ছা আছে?

মোড সম্পাদনা: স্ট্যানিস্লাভ মালিশেভ একজন মূল পিএইচপি বিকাশকারী।


9
@ স্ট্যান: আপনি যেমন মন্তব্য এড়াতে চান, আপনি তা যাইহোক এটি পেতে যাচ্ছেন। সমস্যার মানুষ আছে পিএইচপি সঙ্গে মূলত জিনিষ আপনি আপনার পোস্টে আউট ক্ষমতাসীন করছি বিভাগগুলির মধ্যে আছে। [...]
ফিশটোস্টার

24
[...] আপনি বলছেন "আপনাকে আসলে মুখে না মারাই আমরা কীভাবে মুখে আঘাতের অভিজ্ঞতা উন্নত করতে পারি?" আমি বলতে চাই, হ্যাঁ, আমাদের মুখে আঘাতের সময় ফ্রি কফি পাওয়া ভাল হতে পারে, এটি মুখের মধ্যে আঘাত হানা দিয়ে আসলে অনেকগুলি অন্তর্নিহিত সমস্যার সমাধান করে না। সুতরাং, আমি আশা করি আপনি এখানে কিছু দরকারী উত্তর পেয়ে যাবেন (যেমন ইতিমধ্যে উপস্থিত রয়েছে), অনুপাতহীন দ্বারা অবাক হবেন না।
ফিশটোস্টার

5
@ ফিশটোস্টার: পিএইচপি যদি আপনার জন্য আঘাত হানাতে সহযোগিতা করে, তবে তা সর্বদা এটিকে দূরে রাখ। আপনি সম্ভবত এটির উন্নতি করতে আগ্রহী নন। এমন লোকেরা থাকলেও এটি ঘটে। এই বিষয়টি তাদের জন্য, আপনার জন্য নয়। আমি নিশ্চিত যে এই সাইটে আপনার জন্য অনেকগুলি বিষয় রয়েছে, এটি কেবল তাদের মধ্যে একটি নয়।
StasM

5
আমি উদাহরণ হিসাবে মুখে আঘাত ব্যবহার করছি- এমন পরিস্থিতি যেখানে অতিমাত্রায় উন্নতি ততটা গুরুত্বপূর্ণ নয়; যখন বেশিরভাগ মানুষের সমস্যা অন্তর্নিহিত জিনিসটির সাথে থাকে। এমনকি এই অতিমাত্রায় উন্নতির জন্য পরামর্শ পেতে আপনার প্রয়াস আমিও ঠক করছি না I'm পরিস্থিতিটি বিবেচনা করে আপনি কেন কিছু অস্বাস্থ্যকর উত্তর পেতে পারেন তা আমি কেবল ইঙ্গিত করছি।
ফিশটোস্টার

6
@ ফিশটোস্টার: সবাই আশ্চর্যজনকভাবে পিএইচপি ঘৃণা করে না - আমি সবসময় এটি পছন্দ করেছি liked খুব নমনীয় এবং দ্রুত (কোডে)।
অর্বলিং করছে

উত্তর:


119

আমি নামকরণ পরামিতি কিছু মনে করবে না।

getData(0, 10, filter => NULL, cache => true, removeDups => true);
// instead of:
getData(0, 10, NULL, true, true);

// or how about:
img(src => 'blah.jpg', alt => 'an albino platypus', title => 'Yowza!');

দুর্ভাগ্যক্রমে পিএইচপি ডেভেলস এই ধারণাটি ইতিমধ্যে নিচে ফেলেছে।


1
এটি 2005 সালের তালিকা Many অনেক ধারণা বন্ধ হয়ে যায় এবং তারপরে পুনর্জন্ম হয়। প্রকৃতপক্ষে, যদি একটি ভাল বাস্তবায়ন আসে, তবে এটির জন্য একটি উপযুক্ত সুযোগ রয়েছে।
StasM

21
এটি আমার প্রিয় অজগর বৈশিষ্ট্য। কোডটিকে খুব স্ব-ডকুমেন্টিং করে তোলে।
কিয়ো

7
@ জো কে: এটি ঠিক আছে, তবে 'অ্যারে' কলটি অযথা আবর্জনা you আপনি কেবল যা করার চেষ্টা করছেন তা কেবল তা বিস্মৃত করে। আর একটি বিকল্প অ্যারেগুলির জন্য একটি শর্টহ্যান্ড সিনট্যাক্স হবে: Make_img (['src' => 'blah.jpg', ...]);
এরিক ভ্যান ব্রাকেল

2
@ এরিক: এটি কোনও খারাপ বিকল্প নয়, আমি বলছি কেন আপনি যখনই ইতিমধ্যে ছোটখাটো অ্যারে র‌্যাপার দিয়ে এটি করতে পারবেন তখন কোনও ভাষাতে এই বিশৃঙ্খলা যুক্ত করুন।
জোশ কে

4
@ এরিক: অ্যারেগুলির জন্য আরও শিথিল বাক্য গঠন (জাভাস্ক্রিপ্টের []অপারেটরের মতো) একটি প্রশংসিত বৈশিষ্ট্য হবে।
জোশ কে

93

আরও অধিবেশন:

echo something_that_returns_array()[4];

অন্যরা নামের প্যারামিটারগুলি এবং সংক্ষিপ্ত অ্যারে সিনট্যাক্স উল্লেখ করেছে। সংক্ষিপ্ত অবজেক্ট সিন্টেক্সেও আমার আপত্তি নেই।

$a1 = array(1, 2, 3, 4);
$a2 = [1, 2, 3, 4];

$b1 = (object)array('name' => 'foo');
$b2 = {'name' => 'foo'}; // or something?

18
() [] বাক্য গঠন ইতিমধ্যে ট্রাঙ্কে রয়েছে। দুর্ভাগ্যক্রমে, অ্যারে শর্টকাটগুলি প্রত্যাখ্যান করা হয়েছিল, তবে আমি পুনরুত্থানের আশা করি।
StasM

2
আমি এই বৈশিষ্ট্যটি পছন্দ করব। কেন আমরা কিছু_এটা_টায়ার্নস_বজেক্ট () -> 4 রাখতে পারি তবে অ্যারে দিয়ে না?
বালা ক্লার্ক

4
অ্যারে এবং অবজেক্ট স্বরলিপিগুলির মতো জাভাস্ক্রিপ্ট রক করবে। ফ্রন্ট এন্ড বিকাশকারী হিসাবে এটিই আমাকে পিএইচপি কোডে সবচেয়ে বেশি বিরক্ত করে।
ঘুম ব্লুপ

1
@ ডিসগ্রান্টলড জোট এটি করেছে, দেখুন:function something_that_returns_array() { return array( 'a', 'b', 'c', 'd', 'e' ); }
আনিকা ব্যাকস্ট্রোম

2
@ ডিসগ্রান্টলডগোট: ()->সিনট্যাক্সের সমস্যাটি হ'ল এটি কেবল তখনই কাজ করে যখন কোনও জিনিস ফেরত দেওয়া হয়, বিষয়টিকে আরও খারাপ করে তোলার জন্য, অবজেক্টটির এমনকি নির্দিষ্ট নামের একটি সম্পত্তি / পদ্ধতি থাকা প্রয়োজন, যা সর্বোপরি, আপনি যা আশা করেন তা করে , আপনি যে প্যারামিটারগুলি দিয়েছেন তা গ্রহণ করার সময় এবং এটির আর কোনও দরকার নেই ... ইত্যাদি ইত্যাদির জন্য প্রার্থনা করার সময়
ফ্যান্ট0 মি

72

পিএইচপি-র সাথে প্রায় 13 বছর কাজ করার পরে এবং জেএসের সাথে প্রায় 4 টির জন্য ভারীভাবে কাজ করার পরে, দুটি জিনিস আছে যা আমি মনে করি পিএইচপি জেএসের কাছ থেকে ধার নেওয়া ভাল করবে:

1) অ্যারে এবং অবজেক্টের জন্য শর্টহ্যান্ড স্বরলিপি। আমি বিশ্বাস করি যে এটি অভ্যন্তরীণ বিষয়ে আলোচনা করা হয়েছে এবং গুলি করা হয়েছে (সুতরাং আমি শুনি - সসেজ কীভাবে তৈরি হয় তা দেখতে আমি পছন্দ করি না), তবে আমি সত্যিই জেএসে অ্যারে এবং অবজেক্টের আক্ষরিক স্বরলিপিটি একটি বড় উত্পাদনশীলতা জয়।

উদাহরণ স্বরূপ:

$arr     = [1,2,3,4];
$assoc   = [foo=>'bar', baz=>'boo'];
$stdobj  = {foo->'bar', baz->'boo'};

(আইএমএইচও) এর চেয়ে লেখার পক্ষে আরও পরিষ্কার এবং ক্লিনার

$arr     = array(1,2,3,4); // not too bad
$assoc   = array("foo"=>'bar', baz=>'boo'); // not too bad either
$stdobj  = new stdClass; // this gets pretty rough
$stdobj->foo = 'bar';
$stdobj->baz = 'boo';

আমি শুনেছি যে সম্ভাব্য বিভ্রান্তি সম্পর্কে কিছুটা উদ্বেগ উত্থাপিত হয়েছিল, তবে সত্যই, এটি হেরডোক স্বরলিপি চেয়ে কি আরও বিভ্রান্তিকর? খুব কমপক্ষে, পিএইচপি-তে একটি stdClass অবজেক্ট তৈরি করা অনুশীলনকে নিরুৎসাহিত করার জন্য যথেষ্ট ভার্জোজ,

2) পূর্বনির্ধারিত ফাংশন এবং পদ্ধতিগুলি নতুনভাবে সংজ্ঞায়িত করতে সক্ষম হওয়া সত্যিই দরকারী। এটি বিশেষত শ্রেণিকে প্রসারিত করা এবং নতুন শ্রেণিকে তাত্পর্যপূর্ণ করা পরিস্থিতিগুলি অতিরিক্ত জটিল বা অবৈধ is আমি মনে করি যদিও আমাদের মূল / অ-ব্যবহারকারীর স্পেস এবং পদ্ধতিগুলির নতুন সংজ্ঞা এড়ানো উচিত।


এই দুটি ছাড়াও, আমি মনে করি পিএইচপি অবশ্যই স্বচ্ছভাবে ইউনিকোড সমর্থন করবে । এটি বিকাশকারীদের জন্য আরও সমস্যা হয়ে উঠছে এবং বর্তমানে পিএইচপি-তে প্রস্তাবিত সমাধানগুলি বিভ্রান্তিকর এবং প্রায়শই অ-পারফরম্যান্ট। সমস্ত স্ট্যান্ডার্ড স্ট্রিং কার্যকারিতা বাক্সের বাইরে ইউনিকোড-বান্ধব করা পিএইচপি প্রোগ্রামারদের পক্ষে বিশাল জয় হবে।

জিজ্ঞাসা করার জন্য ধন্যবাদ!


(2) রনকিট তাকান। (3) ইউনিকোড হার্ড, বিশেষত যেহেতু বাইরের বিশ্বের বেশিরভাগ অংশ ইউনিকোড নয়। আমাদের হয় কর্মক্ষমতা বা হত্যা করতে হবে বা লোককে প্রচুর অতিরিক্ত কাজ করতে হবে (যেমন জাভা করেন)। এই কারণেই পিএইচপি 6 ইউনিকোড প্রচেষ্টা কার্যকর হয়নি।
StasM

8
ইউনিকোডের ক্ষেত্রে: এটি শক্ত হতে পারে তবে এটি ব্যাপকভাবে কার্যকর হবে (অবশ্যই পিএইচপি বিকাশ নিজেই শক্ত, তবে এটি দুর্দান্ত সুবিধা দেয়, হ্যাঁ?) সম্ভবত সমাধানটি বোঝা পারফ ট্রেড অফের সাহায্যে এক্সটেনশনের মাধ্যমে স্বচ্ছ ইউনিকোড সক্ষম করা, অনেকটা এক্সএইচপি এর মতো? আবার ধন্যবাদ.
ফানক্যাট্রন

5
$ অবজেক্ট = (অবজেক্ট) অ্যারে ("foo" => 'বার', বাজ => 'বু');
মার্চিউটি

3
আমি দেখতে পাচ্ছি না আপনি কীভাবে "বাইরের বিশ্বের বেশিরভাগটি ইউনিকোড নয়" দেখতে পাচ্ছেন? আপনি কি মানুষের কথা বলছেন? অথবা অন্য কিছু? কারণ বিশ্বের বিশাল সংখ্যাগরিষ্ঠ মানুষ ( বিশাল ব্যবধানে) এমন ভাষায় কথা বলেন যা ইউনিকোড দ্বারা সর্বাধিক প্রতিনিধিত্ব করা হয়।
ডিন হার্ডিং

1
অবশ্যই ইউনিকোড সমর্থন। যে কোনও ধরণের বিশ্বব্যাপী ব্যবহৃত অ্যাপ্লিকেশনটি চালিত করা এগুলি ব্যতীত স্টার্টার নয়। পিএইচপি ডেভেলস ভাবেন যে শালীন ইউনিকোড সহায়তায় ইঞ্জিনিয়ারিং সহজ কিনা বা বিন্দুটির পাশে নেই। লোকেরা এটির প্রয়োজন, এবং তারা প্ল্যাটফর্মের ব্যর্থতাগুলি এড়াতে তাদের উপায় হ্যাক করছে। অন্তর্নিহিত ingালাই সহ আরও একটি স্ট্রিং টাইপ যুক্ত করে এটিকে ডিফল্ট করে এবং পুরানো আচরণটি ফিরে পেতে বিশ্বব্যাপী স্যুইচ করে ডেলফি এটি করেছিলেন। পিএইচপি কেন এটি একইভাবে করতে পারে না?
জোয়ারি সেব্রেচটস

48

প্রাক্তন দীর্ঘকালীন পিএইচপি ক্ষমা প্রার্থী হিসাবে যে জিনিসগুলি আমি চাই তা:

  1. অ্যারেগুলির জন্য সংক্ষিপ্ত বাক্য গঠন। পিএইচপি অ্যারেগুলি তাদের নমনীয়তার কারণে ভাষার অন্যতম দুর্দান্ত বৈশিষ্ট্য, তবে এটি লেখার জন্য এটি একটি টান some_array_method($argity, array('key' => $value));। আমি বিশ্বাস করি দুর্ভাগ্যক্রমে এই প্রস্তাবটি পিএইচপি মেলিং তালিকায় ইতিমধ্যে উচ্ছেদ করা হয়েছিল।
  2. finally সমর্থন
  3. / টীকা আরোপ করা। এগুলি আপনাকে এমন পদ্ধতিতে কাস্টম আচরণ যুক্ত করতে দেয় যা কোড পুনরায় ব্যবহারের অনুমতি দেয়। উদাহরণস্বরূপ, একটি এমভিসি ফ্রেমওয়ার্কে, একটি এমন একটি সংজ্ঞায়িত করতে পারে AuthorizeAttributeযা নির্দেশ করে যে কোনও নিয়ামক বা ক্রিয়া পদ্ধতিতে ব্যবহারকারীকে অনুমোদিত হতে হবে। কাঠামো নিজেই গুণাবলীর সন্ধানের জন্য এবং সে অনুযায়ী তাদের উপর অভিনয় করার জন্য দায়বদ্ধ হবে। আমি বিশ্বাস করি পিএইচপিউনিট ইতিমধ্যে ডকব্লক মন্তব্যে রাখার মাধ্যমে এক ধরণের অ্যাট্রিবিউট ব্যবহার করে, যা প্রতিচ্ছবি ব্যবহার করে পড়া যায়, তবে ডকব্লক মন্তব্যে প্রকৃত কার্যকারিতা স্থাপন অবশ্যই হ্যাক।
  4. খাটো লাম্বদা সিনট্যাক্স। লেখার পরিবর্তে function($x){ return $x*2;}, সম্ভবত আমি লিখতে পারি $x => return $x*2, বা কিছু something এটি আবার এমন কিছু যা এই বৈশিষ্ট্যটি ব্যবহার করতে একে একে টেনে আনে। উদাহরণস্বরূপ $results = array_filter(array(1,2,3), function($a) { return $a % 2; }):বনাম $results = array_filter(array(1,2,3), $a => return $a % 2 );প্রাক্তনটির কাছে এত বেশি নদীর গভীরতানির্ণয় রয়েছে যা মূলত আপনি সম্পাদন করার চেষ্টা করছেন প্রকৃত কাজের সাথে অপ্রাসঙ্গিক।
  5. একটি বিল্ট-ইন Decimal(ফিক্সড পয়েন্ট গণিত) যা সাধারণ অপারেটরগুলির মাধ্যমে গণিতের ক্রিয়াকলাপকে সমর্থন করে তা এক ধরণের সুন্দর হবে, কারণ আমাদের অপারেটর ওভারলোডিং নেই।
  6. মোয়ার ম্যাজিক পদ্ধতি। যাদু পদ্ধতি দুর্দান্ত। আমি যাদু পদ্ধতিগুলির মাধ্যমে পিএইচপি অপারেটরকে ওভারলোডিং দেখতে পেয়েছি (আমি জানি এটি মূলত কখনই ঘটবে না)) তবে সাধারণভাবে, তারা ভাষায় ডুব দেওয়ার এবং দুর্দান্ত জিনিসগুলি করার দুর্দান্ত উপায় সরবরাহ করে।

48

পিএইচপি সত্যই অবজেক্ট ওরিয়েন্টড করুন। slap on another global functionপিএইচপি এর বিবর্তন শেষ হতে হবে।

array_merge(array_filter(array_intersect_key($arr1, $arr2), "is_int"), $arr3);

এটি আমার পক্ষে পড়া কঠিন। আমাকে নিজের মানসিক স্ট্যাক তৈরি করতে হবে এবং এটিকে নিজেই সংকলন করতে হবে। মূলত এটি বিপরীতে পড়া উচিত। $dog->wakeup()->bark();তুলনায় পড়া সহজbark(wakeup($dog))

$arr1->array_intersect_key($arr2)->array_filter("is_int")->array_merge($arr3);

আপনি এখন অবজেক্ট / পদ্ধতি সমর্থন সক্ষম করার দিকে পদক্ষেপ নিয়ে এসেছেন দয়া করে এটি আসল কোর পিএইচপি ফাংশনে ব্যবহার করুন।

আসুন 500 ফাংশনগুলির নাম পরিবর্তন করুন এবং তাদের জন্য প্যারামিটার ক্রম পরিবর্তন করুন।

এই কার্যকারিতাটি পদ্ধতিগুলিতে স্থানান্তর করা তাদের কিছু ধারাবাহিকভাবে ব্যবহার করে পুনরায় নামকরণে সক্ষম হবে। স্ট্রিং এবং অ্যারেগুলির নিজস্ব পদ্ধতি থাকলে এটি কোনও পিছনের সামঞ্জস্যতা ভেঙে দেবে?


3
আমি মনে করি অ্যারে অবজেক্ট টাইপ না হওয়া পিএইচপি-তে একটি বড় ভুল। সব ধরণের ঝামেলার দিকে নিয়ে যায়। দুর্ভাগ্যক্রমে, এটি একটি বিবর্তনীয় জিনিস। আপনি এখানে এক্সটেনশন বা ইউজারস্পেস দিয়ে যা করতে চান তা করতে পারেন। সম্ভবত এসপিএল ফিট করবে fit
StasM

3
একই যুক্তি স্ট্রিংয়ের ক্ষেত্রে প্রযোজ্য। আমি কেবল সাধারণভাবে পদ্ধতির অভাব উল্লেখ করছি। জাভা, পাইথন, সি # ইত্যাদি ভাষার মতো আরও অনেক বেশি পঠনযোগ্য কোড রয়েছে। আমি অনুমান করি আপনি বৈশিষ্ট্যগুলি সন্ধান করছেন, তবে আইএমওটি কী ভাঙা আছে তা স্থির করা ভাল পারিশ্রমিক be
কিও

6
না, বোকা না। এটি হবেdog_wake_up($dog); bark_dog($dog);
ম্যাচু

2
আইএমএইচও, যে কোনও নতুন স্ট্রিং পদ্ধতিতে ইউটিএফ -8 আশা এবং প্রসারণ করা উচিত এবং যদি ইনপুটটি বৈধ ইউটিএফ -8 না হয় তবে ব্যতিক্রম ছুঁড়ে ফেলা উচিত। এটি ইউনিকোড সমর্থন একটি বড় পুনরায় কাজ করার প্রয়োজন হ্রাস করবে।
rjmunro 6'11

1
@ ফ্লুশাবল নং একটি অতিরিক্ত প্যারামিটারের অর্থ হ'ল আমরা যদি ফাংশনে যুক্ত করার জন্য নতুন জিনিস আবিষ্কার করি তবে আমরা পরে পরামিতিগুলি যুক্ত করতে পারি না। উদাহরণস্বরূপ, যদি $ স্ট্রিং => ট্রিম () কেবল হোয়াইটস্পেস করে (৪.১.০ এর আগে), তবে আপনার সিস্টেমটি ISO স্ট্রিং => ট্রিম ('আইএসও -8859-1') আইএসও -8859-1 স্ট্রিংগুলি থেকে ছাঁটা হোয়াইট স্পেস বলবে would । যদি আমরা তখন হোয়াইটস্পেস নয় এমন জিনিসগুলি ছাঁটাইতে সক্ষম করতে চাইতাম তবে আমরা যদি লোকেরা প্রথমে এনকোডিং নির্দিষ্ট না করে থাকি তবে আমরা তার জন্য প্যারামিটারটি যুক্ত করতে পারব না। আমাদের লোকদের বিশ্বাস করতে উত্সাহিত করা উচিত যে ইউটিএফ -8 নয় এমন যে কোনও পাঠ্য ভুল
rjmunro

40

একটি ভাষা-সংহত-কোয়েরি ইঞ্জিন দুর্দান্ত হবে। .NET- এ যা পাওয়া যায় তার মতো বাছাই করুন যার নাম লাইনকিউ। এটি ডেটাগুলির বৃহত অ্যারেগুলির মধ্যে বাছাই করতে সহায়তা করবে এবং ডাটাবেস অ্যাক্সেসকে মানিক করে দেবে, যাতে কম এসকিউএল-ইনজেকশন আক্রমণ সফল হয়।


2
প্যারামিটারাইজড কোয়েরিগুলিকে আরও সহজ করে তোলে এমন কিছু আমার ভোট পায়!
ডিন হার্ডিং 14

1
আমি মনে করি মানকযুক্ত ডাটাবেস অ্যাক্সেসটি আসলে লিনকিউ-এর মতো কোনও কিছুর একটি খুব গুরুত্বপূর্ণ সুবিধা, কারণ আমার ধারণা এটি আপনার ডাটাবেস অবজেক্টগুলির উপহাসের সাথে ইউনিট
টেস্টিংকে

আমি মনে করি না যে এই জাতীয় কিছুটি মূল হয়ে উঠবে। এটি আরও ভালভাবে একটি পিকেল এক্সটেনশনে ফিট হবে
হেরাল্ড

38

উহু. আদিমদের জন্য হিন্টিং টাইপ করুন। সেটা ভালো হবে.


1
যদিও আমি পিএইচপি-র KISS নীতিটি পছন্দ করি (প্রসারিত পর্যন্ত), আমি দৃ strongly়ভাবে দ্বিতীয়টি। কারণটি হ'ল যদি আপনি সত্যিই প্রতিরক্ষামূলক হতে চান তবে প্রতিটি সেটার পদ্ধতিতে আপনি একই ধরণের চেকিং কোডটি শেষ করেন । ভাষাটি যদি দেশীয়ভাবে সমর্থন করে তবে আমরা তা সহজেই ফেলে দিতে পারি।
মাইকে

4
"টাইপ ইঙ্গিত" খুব দুর্ভাগ্যজনক নাম, কারণ এটি "হিন্টিং" নয়, এটি কঠোর টাইপিং। আমার মনে হয় পিএইচপি-র মতো গতিময় ভাষায় আদিম কঠোর টাইপিংয়ের জায়গাটি বাইরে থাকবে। আধ্যাত্মিক টাইপিং (একই জিনিস যা অভ্যন্তরীণ ফাংশনগুলি করে - চেষ্টা করুন স্ট্র্লেন (123)) ঠিক আছে।
StasM

6
এই জন্য +1। ফাংশন ঘোষণায় হিন্টিং টাইপ করুন (বা কঠোর টাইপিং) অবিশ্বাস্যরূপে সহায়ক হবে এবং যদি (! Is_int ()) প্রতিটি এবং প্রতিটি পদ্ধতিতে বকাবকি হয় তবে তা অনেকটা কেটে ফেলা হয়।
ফিল স্টারজন

5
@ স্ট্যাসএম আমি একমত নই একটি গতিশীল ভাষার সুযোগের সাথে পুরোপুরি এটি ব্যবহারকারীর স্ট্যাটিকালি টাইপড উপায়ে ভাষাটি ব্যবহার করার সুযোগ দেয়। এবং এটি আরও ভাল ত্রুটি ধরার অনুমতি দেয়। আপনি এটি না চাইলে আপনাকে এটি ব্যবহার করতে হবে না, তবে ব্যক্তিগতভাবে আমি স্ট্রিংগুলি যেখানে আমি কোন ইন্টি চাইছিলাম সেখানে গিয়ে বিরক্ত হয়েছি এবং তারপরে নির্বিকার স্ট্রিংটি কোথায় পাস হচ্ছে তা বের করার জন্য কোডের মাধ্যমে অনুসন্ধান করতে হবে অন্যথায়, সমস্ত সময় সমস্ত কিছু পরীক্ষা করে টাইপ করুন।
ড্যানিয়েল বিংহাম

2
@ স্ট্যাসম সম্পূর্ণরূপে স্ট্যাটিকালি টাইপড ভেরিয়েবলগুলি প্রবর্তন করার কোনও কারণ নেই। হ্যাঁ, আপনি আপনার কোডটিতে ত্রুটিগুলি সরিয়ে ফেলবেন। পুরো বিষয়টি হবে। ফাংশনটির অভ্যন্তরের পরিবর্তে ফাংশন কল সময়ে ত্রুটি ঘটবে - যা আপনাকে ত্রুটিটি আসলে ঘটছে এমন কোনও ধারণা ছাড়াই দেয়। ধরণের রূপান্তর ত্রুটি হিসাবে, ত্রুটিটি ঘটবে - হ্যাঁ রান সময়ে - ফাংশন কলে। ডানদিকে সঠিক ধরণের রূপান্তর করে সমস্যাটি ঠিক করুন। কোনও ফাংশনে একটি স্ট্রিং উপস্থিতির চেয়ে আরও ভাল যা কোনও ইনট প্রত্যাশা করে এবং কোথা থেকে না জেনে।
ড্যানিয়েল বিংহাম 21

34

আমি বাক্সের বাইরে আরও ভাল ইউনিকোড সহায়তার জন্য চাই। বেশিরভাগ ভাষাগুলি সেই দিকে এগিয়ে যায় তবে পিএইচপি এখনও অদ্ভুত কমান্ডগুলি জুড়ে থাকে।

পিএইচপি স্ট্রিংগুলি কেবল প্লেইন বাইট অ্যারে হয়। তাদের সামগ্রীটি বহনযোগ্য নয় কারণ এটি বর্তমান ডিফল্ট এনকোডিংয়ের উপর নির্ভরশীল।

সিরিয়ালাইজ করে নির্মিত প্রতিনিধিত্বের ক্ষেত্রেও এটি একই প্রযোজ্য। এটিতে আসলে কোনও এনকোডিং তথ্য সংরক্ষণ না করে স্ট্রিংয়ের দৈর্ঘ্য-উপসর্গযুক্ত বাইট উপস্থাপনা রয়েছে।

বেশিরভাগ পিএইচপি (স্ট্রিং) ফাংশনগুলির ইউনিকোড সম্পর্কে কোনও ধারণা নেই। প্রতিটি ফাংশনের ঝুঁকি স্তর সহ বিশদ তালিকার জন্য, দেখুন: http://www.phpwact.org/php/i18n/utf-8

http://blog.ginkel.com/2010/03/php-unicode-support-or-the-lack-thereof/


ইউনিকোড সমর্থন চিন্তার চেয়ে অনেক কঠিন প্রমাণিত। যে কারণে পিএইচপি 6 প্রচেষ্টা স্থগিত হয়েছিল। আপাতত, আমাদের কাছে utf-8 রয়েছে এবং আমি মনে করি যে সর্বোত্তম উপায় হ'ল স্ট্রিং ফাংশনগুলির জন্য utf-8 সমর্থন যুক্ত করা, সম্ভবত ইন্টেল এক্সটেনশনের অংশ হিসাবে।
StasM

3
বিটিডাব্লু, উক্তিটি ভুল। পিএইচপি স্ট্রিংগুলি বাইট অ্যারেগুলি হয় তবে তাদের সামগ্রীগুলি আপনার তৈরি করার মতোই পোর্টেবল এবং "ডিফল্ট এনকোডিং" -র উপর নির্ভর করে না - এটি কেবল বাইটের অ্যারে, আপনি সেগুলি utf8 এ চান, utf8 চান, utf16 চান - utf16 রাখুন ut phpwact.org লিঙ্কটি মারা গেছে বলে মনে হচ্ছে।
StasM

1
আমি সত্যিই প্রত্যাশা করব যে ইনটেল এক্সটেনশনটি ডিফল্টরূপে সক্ষম হবে, যাতে ইউটিএফ -8 (প্রত্যেকের নয়?) এর প্রয়োজনের সাথে তাদের প্রত্যাশার মতো আচরণ করার জন্য স্ট্রিং ফাংশনগুলি পেতে তাদের হোস্টের সাথে লড়াই করতে হয়নি।
এমিল স্টেনস্ট্রোম

এছাড়াও, স্ট্রিং সম্পর্কে স্পষ্টতার জন্য ধন্যবাদ। আমি আপাতত পিএইচপি থেকে দূরে ছিলাম, তাই আমি কিছুটা মরিচা পড়েছি। আমি এর পরিবর্তে পাইথনের সাথে ইউনিকোড যুদ্ধ করেছি, যা পিএইচপি-র মতোই সমস্যা রয়েছে, তবে পাইথন 3-এ সমাধান করে
your

এটি অবশ্যই একটি ক্ষেত্র যা আমি উন্নতি দেখতে চাই
নাথান ওসমান

32

অসামঞ্জস্যপূর্ণ নামকরণ এবং পরামিত নন-অবজেক্টগুলিকে প্রতিস্থাপনের পদ্ধতিগুলি সহ স্ট্রিং অবজেক্টের মতো করুন। যেমন

$subject->replace($search,$replace);
$string->split($separator);
$string->trim();

প্রভৃতি

সম্পাদনা করুন: আরও একটি জিনিস: এনকোডিংগুলি মোকাবেলা করার উদ্দেশ্যে বিশেষত উদ্দেশ্যে ব্যতীত, এই পদ্ধতিগুলি সর্বদা UTF-8 প্রত্যাশা করে এবং নির্গত করতে হবে। যদি ইনপুটটি অবৈধ ইউটিএফ -8 হয়, তবে একটি ব্যতিক্রম ছুঁড়ে ফেলা উচিত, এমনকি যদি ফাংশনের আউটপুট এনকোডিং দ্বারা প্রভাবিত না হয়।


আপ, আমি ঠিক লক্ষ্য করছি এটাই।
কেমো

1
subject->verb(object), পরামিতি ক্রম মনে রাখা সহজ করে তোলে।
মিং-টাং

এই ধরণের কাজটি করার জন্য আমি নিজের স্ট্রিং ক্লাস তৈরি করে চারপাশে খেলেছি, এটি কোডিংকে এত সহজ করে তোলে এবং আপনি কখনই প্যারামিটার ক্রমটি ভুলে যান না।
অসন্তুষ্ট গোয়াট

2
তাহলে কি is_object($string)ফিরবে? এটি হয় পিছনের দিকে সামঞ্জস্যতা বড় সময় ভেঙে দেবে, বা এর ফলে সত্যই অপ্রয়োজনীয় প্রায়-তবে-না-বেশ-অবজেক্টের পরিচিতি ঘটবে।
Tgr

@ টিজিআর: is_object () অবমূল্যায়ন করা উচিত - "অবজেক্ট নয়" এর মতো কোনও জিনিস থাকা উচিত নয়। স্বল্পমেয়াদে, এটি এমন একটি সম্পত্তি হতে হবে যা আপনি যে কোনও বস্তুটি বন্ধ করতে পারেন এবং ডিফল্ট স্ট্রিং নির্মাণকারীরা এটি বন্ধ করে দেবে।
rjmunro

24

1) আমি নতুন তাত্ক্ষণিকৃত অবজেক্টগুলিকে "return এটি" ফেরত দিতে পছন্দ করব যাতে আমি পদ্ধতি শৃঙ্খলা, $ ব্যবহারকারী = নতুন ব্যবহারকারী ('জন') -> সেটলাস্টনেম ('ডো') -> সংরক্ষণ ();

২) আপনি যদি কখনও রুবি ব্যবহার করেন এবং অতি সম্প্রতি নোড ব্যবহার করেন তবে তাদের একটি দুর্দান্ত ইন্টারেক্টিভ শেল (আইআরবি) রয়েছে। আমি পিএইচপি এর জন্য প্রকৃতপক্ষে দরকারী একটি থাকতে চাই।

3) বৈশিষ্ট্য / মিক্সিনস, তবে আমি শুনেছি সেগুলি পথে রয়েছে।

4) আমি সংক্ষিপ্ত অ্যারে second myArray = ['আমার', 'অ্যারে'] দ্বিতীয় করতে চাই;

5) ধারাবাহিক নামকরণ / আদেশ (যেমন সুই খড়ের ছিদ্র)


আমি এমন একটি create()পদ্ধতি তৈরি করা ঘৃণা করি যা কেবল # 1 এর কাজ করার জন্য বিশেষ কিছু করে না!
অ্যালান পিয়ার্স

আমি একই কাজটি করি তবে, দেরী স্ট্যাটিক বাইন্ডিং এবং একটি অবজেক্ট সুপারক্লাস ব্যবহার করে, আমার সুপারক্লাসকে প্রসারিত করে এমন প্রতিটি ক্লাসের পদ্ধতি রয়েছে, যেমন: সোমসক্লাস সুপারওবজেক্ট s} প্রসারিত করে; ;> Somemethod () - SomeClass :: সৃষ্টি ()
dukeofgaming

Github.com/philsturbon/php-ps এ দেখুন এটি কেবল একটি শুরু তবে কিছু সহায়তায় এটি বেশ কার্যকর হতে পারে।
ফিল স্টারজন

1
একটি পিয়ার প্যাকেজও রয়েছে যা পিএইচপি-তে দ্রুত পরীক্ষা-নিরীক্ষার কোডিংয়ের জন্য একটি ইন্টারেক্টিভ শেল অফার করে
Pear.php.net/package/PHP_Shell

(নতুন ফু ()) -> বার () 5.4 এর অংশ। 3) এবং 4) খুব।
StasM

20

1) দয়া করে অন্তর্ভুক্ত থেকে মুক্ত হন ()। অন্যান্য ফাইলগুলির রেফারেন্সগুলি রেফারেন্স হওয়া উচিত, এবং আসলে একটি উত্স কোড ফাইলের বিষয়বস্তু অন্যটিতে রাখে না place অনেক বেশি পিএইচপি প্রোগ্রামার ব্যবহার করে () একটি লাইব্রেরির রেফারেন্সের উপায়ের চেয়ে ফাংশন কলের এক ধরণের হিসাবে অন্তর্ভুক্ত। এটি পরিবর্তনশীল রাষ্ট্র এবং অস্থির কোডে সমস্ত ধরণের অস্পষ্টতার দিকে পরিচালিত করে। এটি একটি পার্ল-জাতীয় 'ব্যবহার' কমান্ড দিয়ে প্রতিস্থাপন করুন।

2) দয়া করে একটি একক বিতরণযোগ্য বাইটকোড ফাইল বা এক্সিকিউটেবলের মধ্যে পিএইচপি অ্যাপ্লিকেশন সংকলনের বক্স পদ্ধতির বাইরে সরবরাহ করুন। এটি বাণিজ্যিক উন্নয়নের ভাষা হিসাবে পিএইচপি-র আবেদনকে ব্যাপকভাবে বাড়িয়ে তুলবে। এটি ভাষার মূল উপাদান হওয়া উচিত be কোনও অ্যাপ্লিকেশনটির জিইউআইয়ের জন্য ব্যবহৃত এইচটিএমএল ফাইলগুলি নিয়ে চিন্তা করবেন না কারণ ...

3) দয়া করে এইচটিএমএলে পিএইচপি ট্যাগ এম্বেড করার ক্ষমতা থেকে মুক্তি পান। অথবা কমপক্ষে একটি 'নো এমবেড' মোড সরবরাহ করুন। এটি একটি নিখুঁত গণ্ডগোল এবং অ্যাপ্লিকেশন যুক্তি এবং উপস্থাপনা একসাথে মিশ্রিত করে খারাপ নকশা উত্সাহ দেয়। বিকাশকারীদের প্রদর্শনের জন্য টেম্পলেটগুলি ব্যবহার করা উচিত এবং পিএইচপি ফাইলগুলিকে একসাথে চড় মারতে হবে না এবং সেরাটির জন্য আশা করা উচিত।

সাইন ইন,

GrandmasterB

পিএস: এখানে অন্যেরা যা বলেন তা শোনেন না, আমি সারা বছর ভাল ছিলাম


37
1)। অন্তর্ভুক্ত দুর্দান্ত। সবকিছুর অন্তর্ভুক্ত রয়েছে। 2)। এটা ভাল. 3) টেম্প্লেটিং PHP এর শক্তিশালী বৈশিষ্ট্য । আপনাকে অন্য কিছু টেম্প্লেটিং বুলশিট ব্যবহার করতে বাধ্য করা খুব খারাপ পদক্ষেপ হবে।
জোশ কে

8
আমি (1) এবং (2) পছন্দ করি, তবে (3) প্রত্যাবর্তনের পদক্ষেপের মতো মনে হয়। পিএইচপি আপনাকে টেম্প্লেটিং শক্তি দেয়, আপনি এটি বুদ্ধিমানের সাথে ব্যবহার করেন কিনা তা আপনার বিষয়।
geekbrit

11
3 কোনও অর্থ দেয় না - এমভিসি ফ্রেমওয়ার্কগুলিতে যে কোনও ভি এর জন্য ট্যাগ এম্বেডিং প্রয়োজনীয়।
অ্যালেক্স

9
আমি এই উত্তরটি "প্রিয় সান্তা, পিএইচপি পিএইচপি না করে তৈরি করুন" হিসাবে পড়েছি।
স্টিফেন

1
3, ডান আউট হিসাবে পিএইচপি হল একটি টেমপ্লেট ভাষা।
অ্যান্ড্রু

18

E_ERRORঅনির্ধারিত ধ্রুবকগুলির জন্য একটি অন্তর্নিহিত নির্দেশনা , বরং এটি স্ট্রিং রয়েছে বলে ধরে নেওয়া উচিত E_NOTICE


1
ক্লাস কনস্ট্যান্টরা তা করে, বিটিডব্লিউ।
StasM

4
সিরিয়াসলি আমি বুঝতে পারছি না যে তারা কেন পিএইচপিটিকে অব্যক্ত স্ট্রিং ধরে নেয়। এটা বোকামি জিনিস। আমি E_ERRORবা হয় বেছে নিতে হবে E_PARSE
বোল্টক্লক

14

নতুন-আগতদের বোঝার জন্য একটি সুচিন্তিত নামকরণ কনভেনশন দিয়ে বিশ্বব্যাপী নেমস্পেসকে সাধারণ করুন!

আমাদের প্রিয় জেফ আতউডকে উদ্ধৃত করার জন্য: পিএইচপি চুষে ফেলে তবে তাতে কিছু যায় আসে না !


1
আমি নীতিগতভাবে একমত, তবে
বাস্তবে

3
@ স্ট্যাসএম: আমি কল্পনা করি প্রথম পদক্ষেপটি হ'ল লাইব্রেরির নতুন সংস্করণকে নামগতিতে তৈরি করা এবং প্রোগ্রামারদের (আইএনআই সেটিংসের মাধ্যমে) বর্তমানে বৈশ্বিক লাইব্রেরিগুলিকে অক্ষম করার অনুমতি দেওয়া হবে। আমি ভাবব একটি পুরানো সংস্করণগুলির জন্য একটি সামঞ্জস্য প্যাকটি উপযুক্ত হবে তবে এটি লেখা খুব কঠিন হওয়া উচিত নয়।
মিচা টি


13

1) স্বল্প অ্যারে / অবজেক্ট সিনট্যাক্স, একটি লা জাভাস্ক্রিপ্ট (পূর্বে উল্লিখিত)

2) constভেরিয়েবলগুলিকে মতো গণনার ফলাফলের অনুমতি define()দেয়।

3) কনস্ট্রাক্টর থেকে সরাসরি চেইন: new User()->name('Ryan');

4) অ্যারে ডিरेফারেন্সিং: something_that_returns_array()[4];

5) প্রসারিত এসপিএল সমর্থন। এসপিএল স্ট্রিং এবং অ্যারে ফাংশনগুলি (অন্যান্য জিনিসের মধ্যে) অবজেক্ট হিসাবে পুনরায় কল্পনা করার একটি শালীন কাজ করে। এসপিএল প্রসারিত করা ভাষা এতটা ঝাঁকুনির বিষয়ে প্রচুর খপ্পর সমাধান করতে পারে।

)) ব্যবহারটি ArrayObject()ব্যবহারের মতো স্বচ্ছ হওয়া উচিত array()। আপনার না করা যেমন array_filter($array_object_instance)কাজ করতে সক্ষম হওয়া উচিত array_filter($array_object_instance->getArrayCopy())। আরও ভাল, অবশ্যই, হতে হবে $array_object_instance->filter()

)) ফুল-অন ইউনিকোডটি দুর্দান্ত লাগবে।

8) অদ্ভুত স্বয়ংক্রিয় ধরণের রূপান্তর করা বন্ধ করুন। উদাহরণস্বরূপ, echoস্ট্রিং হিসাবে স্পষ্টভাবে টাইপকাস্ট না করে আপনার সরল এক্সএমএলিমেন্ট অবজেক্টে সক্ষম হওয়া উচিত নয় । বা কমপক্ষে, কিছু ঘটে গেলে নিক্ষেপ করুন (উদাহরণস্বরূপ, কঠোর মোডে বা যে কোনও মোডই হোক error_reporting(-1))।

9) একাধিক থ্রেড, বা কিছু ধরণের সন্নিবিষ্ট / অ্যাসিনক্রোনাস কলব্যাকের জন্য সমর্থন। সিআরএল এর মাধ্যমে বড় ফাইল আপলোড করার চেষ্টা করার সময় এটি সবচেয়ে গুরুত্বপূর্ণ। পুরানো-কুলের থ্রেডগুলির পরিবর্তে অ্যাপলের গ্র্যান্ড সেন্ট্রাল ডিসপ্যাচের মতো কিছু সুন্দর লাগবে। অথবা জাভাস্ক্রিপ্ট-জাতীয় এমন কিছু যেখানে আপনি অ্যাসিঙ্ক অনুরোধ করতে এবং কলব্যাকগুলি সংজ্ঞায়িত করতে পারেন।

10) ধারাবাহিক নামকরণ / ক্রম (যেমন সুই খড়ের ছিদ্র) ভাল লাগবে তবে আমি মনে করি এটি এসপিএল দিয়ে আরও ভাল সমাধান করা যেতে পারে।

১১) আইআরবির মতো একটি সরকারীভাবে সমর্থিত ইন্টারেক্টিভ পিএইচপি শেল। ফেসবুকের একটি বলা হয়েছে phpshযা পাইথনে লেখা হয়েছিল, তবে এতে দেখতে যে পোলিশটি রয়েছে তার অভাব রয়েছে।

12) রিফ্লেকশন এপিআই এর জন্য, (ক) ধ্রুবকগুলিতে (গ্লোবাল এবং শ্রেণি) ডকব্লক মন্তব্যগুলির জন্য সমর্থন যোগ করুন, এবং (খ) পিএইচপিডোকের মত মন্তব্যগুলি সংবেদনশীল ডেটা স্ট্রাকচারে পার্স করার জন্য সমর্থন। "ডকব্লক" নামে একটি পিইসিএল প্যাকেজ রয়েছে যা এটি করার চেষ্টা করে, তবে লেখকটি খুব দূরে পেলেন না।

সম্পাদনা: ১৩) রুবি ক্যানের মতো - আমি ব্যবহারের ক্ষমতা !এবং ?ফাংশন নামগুলিতেও দেখতে পছন্দ করব।


আমি সম্মত, অ্যারে_জেক্টটি অ্যারে_ * ফাংশনের জন্য সমর্থন করা উচিত। তবে আপনি যদি অ্যারেবজেক্টের সাবক্লাসটি বিবেচনা করেন তবে "অ্যারে_মিটার" এর মতো কোনও কিছুর প্রত্যাশিত ফলাফল কী হবে? আপনি কি কেবল একই শ্রেণির উদাহরণগুলিকে একীভূত করতে মঞ্জুরি পাবেন এবং কী অ্যারে_মার্জ করে? একটি পিএইচপি অ্যারে বা অ্যারেওজেক্টের একটি উদাহরণ (যথাক্রমে এটি সাবক্লাস)?
7:25 এ হারাল্ড

আমি যুক্তি দিয়ে বলব যেহেতু তথ্য অভ্যন্তরীণভাবে একটি অ্যারে, এবং অ্যারেঅবজেক্ট যে কার্যকারিতা সহ মোড়ানো, তারপরেও অ্যারেঅবজেক্টের সাবক্লাসগুলি অভ্যন্তরীণভাবে অ্যারেগুলির সাথে কাজ করবে। আমি অন্য একটি স্ট্যান্ডার্ড অ্যারে বা অ্যারেঅবজেক্ট (বা সাবক্লাস) মার্জ করতে সক্ষম হতে আশা করব। যতদূর এটি ফিরে আসবে, আমি যুক্তি দিয়ে বলব যে এটি নতুন অ্যারেওবজেক্টটিও ফিরিয়ে আনতে হবে, তবে সেই নজিরটি অনুসরণ করুন যেখানে সরল xML_load_string () সেট নির্ধারণ করতে পারেন যেখানে আপনি শ্রেণীর নাম উল্লেখ করতে পারেন যাতে ফলাফলটি হওয়া উচিত।
রায়ান পারমান

12

1) পাইথন তালিকার বোঝাপড়ার শৈলীতে অ্যারে বোধগম্যতা:

$newlist = array($x->something for $x in $oldlist);

//with short array syntax:
$newlist = [$x->something for $x in $oldlist];

2) সংক্ষিপ্ত অ্যারে সিনট্যাক্স

$newlist = [1,2,3,4,...];

3) খালি করুন () স্ট্রিং '0' কে সত্য হিসাবে বিবেচনা করবেন না


2
আমি মনে করি (1) এর জন্য পুনরাবৃত্তকারী থেকে কিছু রান্না করা এবং বন্ধ করা ভাল something
StasM

+1 আইএমএইচও, এটি সমস্ত ভাষার পাশাপাশি পুনরাবৃত্তির মধ্যে অন্তর্ভুক্ত করা উচিত। তারা না শুধুমাত্র দরকারী উপায়ে।
ইভান প্লেস

empty()এর যৌক্তিক বিপরীত হয় if ($x), সুতরাং এটি বোধগম্য হয় যে empty('0')সত্য, কারণ if ('0')এটি মিথ্যা। পার্থক্যটি হ'ল, empty()চলকটি সেট না করা থাকলে কোনও নোটিশ নিক্ষেপ করবেন না।
অ্যান্ড্রু

12

আমি কনস্ট্যান্ট অ্যারেগুলি তৈরি / সংজ্ঞায়নের একটি আইনী পদ্ধতি দেখতে চাই। এই ধরণের কার্যকারিতা অনুকরণ করার কয়েকটি হ্যাকিশ উপায় রয়েছে তবে এটি পিএইচপি এর কেবল একটি সরল আপ বৈশিষ্ট্য হলে এটি দুর্দান্ত হবে। আপনি জাভা "চূড়ান্ত" ঘোষণার অনুরূপ এমন একটি অ্যারে তৈরি করতে পারলে ভাল লাগবে।

আমি একটি লগইন সিস্টেম তৈরি করেছি যা সেটআপের জন্য খুব দ্রুত। আপনাকে যা করতে হবে তা হ'ল পাঠ্য ফাইলে একটি অ্যারের সামগ্রী পরিবর্তন করে আপনি ব্যবহারকারী তথ্যের জন্য যে ক্ষেত্রগুলি চান তা নির্দিষ্ট করতে পারেন। লুপগুলির জন্য সোয়াথ ব্যবহার করে এটি ফর্ম উত্পাদন এবং ইনপুট সংবেদনশীলতা থেকে শুরু করে ডাটাবেস কলগুলি সব কিছু পরিচালনা করে তবে এটি সমস্ত এই আসল অ্যারের উপর নির্ভরশীল।

অ্যারের সাথে ফাইলটি অনুমতি নিয়ে লকড থাকে তবে অ্যারেটি একবার ইথারে ঘুরলে এটি পরিবর্তনীয়। যদিও আমি মনে করি সিস্টেমটি বেশ সুরক্ষিত আমি কোনও সুযোগে রেখে যাওয়া পছন্দ করি না। অ্যারে চূড়ান্ত করার একটি পদ্ধতি এরকম পরিস্থিতির জন্য দুর্দান্ত হবে be

নতুন ভাবনা!!

ওহ, আমি অন্য কিছু ভেবেছিলাম আমি সত্যিই পিএইচপি-তে চাই। আমি পিএইচপি ফাইল অপারেশন এবং ডাইরেক্টরিটি অপারেশনগুলি .htaccess হিসাবে কাজ করে এমনভাবে নিয়ন্ত্রণ করতে কোনও ধরণের সিস্টেম চাই।

.Ppaccess ফাইলটি কোনও ধরণের একই ডোমেন / একই উত্স নীতি ট্রিগার করা উচিত।

উদাহরণস্বরূপ, যদি আমি ভার্চুয়াল হোস্টের সাথে অনেকগুলি সাইট হোস্ট করতাম তবে আমার একটি ডিরেক্টরিতে একটি phpaccess ফাইল থাকতে পারে যা আমার সুরক্ষিত ডিরেক্টরিতে পরিচালিত করার চেষ্টা করছে এমন কোনও স্ক্রিপ্টের অর্গিন পরীক্ষা করতে php কে বলে would যদি স্ক্রিপ্টটি সেই ডিরেক্টরি বা এর উপ ডিরেক্টরি থেকে না আসে তবে ফাইল অপারেশন / বা সকেট অপারেশনগুলি অস্বীকার করা হবে।

আমি মনে করি এর মতো একটি সিস্টেম ভার্চুয়াল হোস্টিংকে আরও নিরাপদ পরিবেশ তৈরি করবে। আপনি যদি প্রতিটি ভার্চুয়াল হোস্টের শীর্ষে এগুলির একটি স্থাপন করতে পারেন তবে এটি কোনও প্রতিবেশী ভার্চুয়াল হোস্টের কাছ থেকে লুকিয়ে থাকার উপায় খুঁজে পাওয়ার সুযোগকে কমিয়ে দেবে।

এছাড়াও যদি এই পদ্ধতিটির বিপরীতে এটি সুরক্ষিত করার কোনও পদ্ধতি থাকা ভাল হয়। অর্থাত্, একটি ডিরেক্টরিতে স্ক্রিপ্টগুলির অ্যাক্সেসকে সেই ডিরেক্টরিতে সীমাবদ্ধ করে।

এটি ইয়িন এবং ইয়াং ইয়া জানেন!


জন্য +1 final। স্পষ্ট করার জন্য: এর finalঅর্থ হল একটি চলকটির মান রানটাইমে সেট করা যেতে পারে (ধ্রুবকগুলির বিপরীতে, যা ধ্রুবক এক্সপ্রেশন হতে হবে), তবে কেবল একবার সেট করা যেতে পারে। সি # এর এসও দেখুন readonly
ডেভিডটবার্নাল

1
ট্রাঙ্কের জন্য গেটার্স / সেটটারদের জন্য একটি প্রস্তাব রয়েছে যা কেবলমাত্র পঠনযোগ্যভাবে উপার্জন করবে, ইত্যাদি অপরিবর্তনীয় অ্যারেগুলি সম্ভবত করা কঠিন হতে পারে।
StasM

পিএইচপিএকসেস, পিএইচপি ইতিমধ্যে একটি "নিরাপদ মোড" রয়েছে যা আপনার বর্ণনা অনুসারে করে।
অসন্তুষ্ট গোট

11

হার্ডকোর পিএইচপি প্রোগ্রামার হিসাবে আমার দুটি সবচেয়ে বড় শুভেচ্ছা:

  1. শেষ পর্যন্ত সমর্থন করুন। পতাকা বা অনুরূপ উপায়ে কল্পিতভাবে এটিকে ঘিরে ধরার জন্য বড় গণ্ডগোল।
  2. আমি গেটার্স এবং সেটটারদের জন্য সি # এর সিনট্যাক্সে সমর্থন দেখতে পছন্দ করব। যখন আপনার প্রচুর গেটার এবং সেটটার রয়েছে তখন সাধারণ জাট্যাক্স যেমন সি # এর জাভা পদ্ধতিতে লেখার পরিবর্তে গিটার এবং সেটার পদ্ধতিগুলি লেখার পরিবর্তে দুর্দান্ত পারফরম্যান্স বুস্টার। আপনি গতিশীলভাবে সদস্য তৈরি করতে চান এমন ক্ষেত্রে ম্যাজিক পদ্ধতিগুলি দুর্দান্ত ( প্রকারের, এবং তাই। এটি কোডকে আরও ছোট এবং এখনও পঠনযোগ্য এবং সহজেই ব্যবহারযোগ্য করতে সহায়তা করবে।

1
1. দুর্ভাগ্যক্রমে, এটা করতে কঠিন, কিন্তু স্পষ্টভাবে একটি ভাল করণীয় আইটেম 2. wiki.php.net/rfc/propertygetsetsyntax
StasM

@ স্ট্যাসএম: এন্টেশনগুলির মাধ্যমে এটি কীভাবে করবেন? এর লাইনে কিছু: / ** @get getFoo; @set setFoo; * / ব্যক্তিগত $ ফু;
মিশা টি

9

ভাষার বাক্য গঠন : বিকাশকারীরা কী আগ্রহী সে সম্পর্কে পিহিপি এবং ফ্রিপুটগুলিতে কিছু ভাল সূত্র রয়েছে (যদিও ফ্রিপুটটি জেএসে পরিণত হতে অনেক বেশি এগিয়ে যায়)।

বিকাশের পদ্ধতি : এই জাতীয় জরিপগুলি যদি আমলে নেওয়া হয় তবে এটি পিএইচপিএনটের জীবনকালকে ব্যাপকভাবে বৃদ্ধি করবে। আর কোনও উইলি-নিলি বিকেলে আইআরসি সেশন সিনট্যাক্স সিদ্ধান্ত নেবেন না।

স্বতন্ত্র বৈশিষ্ট্য : কিছু আগে উল্লেখ করা হয়েছে, তবে আমি এখানে অতিরিক্ত কড়া হওয়ার জন্য খুশিতে কিছু কর্মফল পুড়িয়ে দেব:

  • ইউনিকোড স্ট্রিং টাইপ।
  • বিগিন্ট (পাইথন দেখুন)।
  • রুনকিট অন্তর্নির্মিত অন্তর্নির্মিত ফাংশন এবং ক্লাসগুলি পুনরায় নামকরণ / ওভাররাইড করতে, যা সর্বদা ভালভাবে ডিজাইন করা হয় না that
  • আধুনিক ওওপি
    • একাধিক উত্তরাধিকার (আনাড়ি বৈশিষ্ট্য সিনট্যাক্স সহ বিরল প্রান্ত ক্ষেত্রে সমর্থন করার জটিলতার পরিবর্তে)
    • স্কেলারগুলি বস্তু হিসাবে দ্বিগুণ করতে পারে (পাইথন দেখুন), উদাহরণস্বরূপ অ্যারে () অ্যারেঅবজেক্ট হিসাবে কাজ করে, বা স্ট্র্লিংকে স্প্লস্ট্রিং হিসাবে ব্যবহার করতে পারে (ব্যবহারযোগ্য পদ্ধতিগুলির প্রয়োজন, সমস্ত স্ট্রিং ফানক হিসাবে উপলব্ধ হওয়া উচিত str::toupper())
  • Shitty shit \নেমস্পেস সিনট্যাক্স অবমূল্যায়ন করুন, পার্সার ঠিক করুন এবং ::বিকল্প হিসাবে গ্রহণ করুন । আপনি জানেন, একটি বাস্তব ভাষার মত।
  • লিনকিউ এর যে কোনও প্রকারের পরিবর্তন (যদিও আমি আপনাকে বিশ্বাস করি না যে ছেলেরা একটি বুদ্ধিমান বাক্য গঠন করে)
  • বা এক্সএমএল আক্ষরিক।
  • পিএইচপি.আইএনই রানটাইম আচরণ এবং শব্দার্থক সুইচগুলি থেকে মুক্তি পান। এটি কিছু উত্তেজনা প্রকাশ করে, সত্য, তবে এটি বিকাশকারী এবং ব্যবহারকারী বেসকে উপকৃত করতে পারে।
  • হ্যাঁ, ম্যাজিক_কোটস এখনও যায় নি।
  • জেন্ড ইঞ্জিন বাইটোকোডকে পিবিসিতে রূপান্তর করুন

যাইহোক, যদি এটি সুস্পষ্ট না হয় তবে আমি সুখের সাথে অন্য কারও জন্য তহবিল দেব এবং প্রধান বাস্তবায়ন হিসাবে পিএইচপি.এন.টি কে হত্যা করব। :P
ওহ, ঠিক লক্ষ্য করেছেন, এটি সম্প্রদায়ের উইকি সুতরাং এমন একটি সুযোগ আছে যা আপনি এখানে আসলে কর্মফলের জন্য নন, তবে আসল আগ্রহের জন্য। যদি তা হয় তবে <b> ইস্যু </ b> যা ভাষাটিকে গুরুতরভাবে আহত করে (ডিরেক্টরাইটিস) দেখুন।


5
আমি \ নেমস্পেস সিনট্যাক্সকে ঘৃণা করি, তবে এটি দীর্ঘ ও দুঃখজনক কাহিনী কেন এটি এমন হয়ে উঠল এবং সম্ভবত এটি বদলাবে না ... সম্ভবত আমি যদি পিএইচপি-তে কেবল একটি জিনিসই পরিবর্তন করতে পারি যা আমার প্রাথমিক প্রার্থী হবে। তবে এটি যা হয়।
StasM

@ স্ট্যাসএম: প্রতিক্রিয়াটির জন্য ধন্যবাদ এবং কিছু পিএইচপি জিনিস সম্পর্কে অভদ্রতা থাকার জন্য দুঃখিত, তবে আমি পিএইচপি সম্পর্কে যত্ন নিই; অতএব খুব মতামতযুক্ত। - আমি যুক্তি সম্পর্কে কিছুটা পড়েছি। ব্যাকস্ল্যাশ দ্বিধা এখনও খুব বড় সমস্যা নয়, তবে গ্রন্থাগারগুলি ছড়িয়ে গেলে এটি পরের বছর হয়ে যাবে। সুতরাং আমি আশা করি যে কেউ এমন একটি পার্সার লিখেছেন যা unders কার্গো ult সংস্কৃতি \ শ্রেণি \ নামগুলি আন্ডারস্কোর স্কিমগুলিতে আবার লিখেছে।
মারিও

হতে পারে আমি খালি, কিন্তু আমরা '::' বা '\' নেমস্পেসের জন্য ব্যবহার করি কিনা তার পার্থক্য কী?
মিশা টি

@ পাইস: যে ::কোনও সি / সি ++ সিনট্যাক্স বন্ধ ভাষার জন্য এটি আরও প্রাকৃতিক হত। এবং programming \ ` সমস্ত প্রোগ্রামিং ভাষার মধ্যে কেবল অস্বাভাবিক নয় , তবে এটির অনির্ধারিত অর্থও রয়েছে। আগের কিছু আলোচনা: stackoverflow.com/questions/238550/... বা developers.slashdot.org/article.pl?sid=08/10/26/1610259 এবং reddit.com/r/programming/comments/79cut/... - কিন্তু এ বিশেষত কোনও প্রতিক্রিয়া ছাড়াই সে সম্পর্কে সিদ্ধান্ত নেওয়া এবং বিকাশকারী সম্প্রদায়কে এটি চুষতে সংকেত দেওয়া খুব একটা স্বাগত পদক্ষেপ ছিল না।
মারিও

1
একাধিক উত্তরাধিকারের জন্য + 1000000।
ts01

8

আমি একক ধারণা (ব্যতিক্রম) এ ত্রুটিগুলি এবং ব্যতিক্রমগুলির একীকরণ দেখতে পছন্দ করব। ব্যতিক্রমগুলি খুঁজে পেতে এবং কোনও লগতে সেগুলি লিখতে, সেভাবে বাগগুলি খুঁজে পেতে এবং ফিক্স করতে সক্ষম হওয়াই দুর্দান্ত। তবে খুব কমই আঘাত করা কোডিপথের মধ্যে যদি মৌলিকভাবে কিছু ভুল (পড়ুন: পিএইচপি ত্রুটি) থাকে তবে সেই একই তথ্যের ডাটাবেসে সেই তথ্য ফ্যানেল করার ভাল উপায় নেই।

দয়া করে, সান্তা, php.ini এ একটি স্যুইচ প্রবর্তন করুন যা সমস্ত ত্রুটি ব্যতিক্রমগুলিতে পরিণত করবে - আদর্শভাবে, ব্যতিক্রমগুলি আমি আমার কোডটিতে ধরতে পারি।


1
এর জন্য ইঞ্জিনটিতে ইতিমধ্যে সমর্থন রয়েছে এবং অনেকগুলি এক্সটেনশান এটি ব্যবহার করে। আপনি সেট_অররর_হ্যান্ডলার () এবং ত্রুটি-ধারণাটি দিয়ে সহজেই এটি করতে পারেন। E_STRICT / E_NOTICE / E_DEPRECATED সতর্ক থাকুন ...
StasM

আমি এই পদ্ধতিগুলি সম্পর্কে ভাল জানি এবং সেগুলি সত্যই হ্যাকি। আমি একটি ইউনিফাইড উপায় পছন্দ করি - এটির মধ্যে E_STRICT / E_NOTICE এবং এর মতো includes
অ্যালেক্স

7

পিএইচপি আমাকে ঠিক সূক্ষ্ম করে তোলে যেমন এটি ছোট থেকে মাঝারি ওয়েবসাইটগুলিকে নক করার জন্য; আমাকে অবশ্যই কিছুটা অকল্পনীয় হতে হবে, এই প্রশ্নের প্রতিক্রিয়া হিসাবে আমি কেবল ভাবতে পারি এমন জিনিসটি এটি উচ্চ ট্র্যাফিক সাইটের জন্য আরও ভাল স্কেল করে তোলে।

আমি অন্য কোরগুলিতে প্রক্রিয়া বন্ধ করার ক্ষেত্রে বিবেচনা করছি, উদাহরণস্বরূপ, অন্য প্রসেসে আউটপুট পৃষ্ঠা তৈরি করার সময় এক প্রক্রিয়াতে একটি ডাটাবেস আপডেট করা। একটি দ্রুত গুগল অনুসন্ধান ইঙ্গিত দেয় যে এটি সিমুলেটেড করা যায় তবে বর্তমানে পিএইচপি-তে সরাসরি সমর্থিত নয়।


1
আসলে, এটি সম্পর্কে আরও চিন্তা করা, ডেটাবেস অফলোড করা আকর্ষণীয় দৃশ্যের মতো বলে মনে হচ্ছে, সুতরাং +1 তে :)
StasM

1
@ স্ট্যাসম, আমি ধরে নিয়েছি আপনার অর্থ হ'ল পৃথক অনুরোধগুলি পৃথক প্রক্রিয়া হিসাবে চালিত হয়। আমি একটি জটিল পৃষ্ঠা সম্পর্কে কথা বলছি যার পৃষ্ঠা প্রজন্ম এবং পটভূমি গণনা প্রয়োজন। আমি ভুল হতে পারি, তবে আমি মনে করি না যে আলাদা প্রক্রিয়াতে ডাটাবেস আপডেট অপারেশনগুলির স্পোন অফ করার কোনও উপায় আছে (উদাহরণস্বরূপ)। এটি করার কারণটি হ'ল পৃষ্ঠাটি অনুরোধকারীর কাছে শীঘ্রই প্রেরণ করা হবে, পৃষ্ঠাটি ক্রমিকভাবে সম্পূর্ণরূপে উত্পাদন করার সাথে সরাসরি সম্পর্কিত নয় এমন সমস্ত প্রক্রিয়াজাতকরণের জন্য অপেক্ষা করার চেয়ে। PS .. আপডেটের জন্য ধন্যবাদ!
গিকব্রিট

7

আমি সত্যিই মিস করেছি যে স্কেলারের প্রকারগুলি অবজেক্ট হিসাবে বিবেচিত হয় না এবং প্রকৃত অবজেক্টগুলি অন্য কোনও ধরণের বা অবজেক্টের মতো কাজ করতে পারে না (__toString () এর কারণে স্ট্রিং ব্যতীত)।


হ্যাঁ, টাইপকাস্টিংয়ের জন্য যাদু পদ্ধতিগুলি দয়া করে।
মিচা টি

7
  • গণনার জন্য সমর্থন (জাভা 1.5++ এর মত)
  • ইন্টারফেস এবং ক্লাসে পদ্ধতি রিটার্নের ধরণগুলি সংজ্ঞায়িত করতে সক্ষম হন
  • বৈশিষ্ট্য এবং পদ্ধতিতে টীকা / মেটাডেটা সংজ্ঞা জন্য সমর্থন।
  • পদ্ধতি স্কেলার আর্গুমেন্টগুলির জন্য কঠোর প্রকারের ইঙ্গিত করতে সক্ষম হোন।

+1 হিসাবে আমি পিএইচপি-তে এই সমস্ত জিনিস দেখতে চাই।
জেরেমি

6

উপর "ব্যবহারকারী অবদান নোটগুলি" পরিষ্কার http://php.net । সাধারণভাবে একটি দুর্দান্ত মান হয়ে ওঠার পরে এগুলি কখনও কখনও সত্যিকারের জগাখিচুড়ি হয়।


1
কোনও ধরণের ভোট আপ / ডাউন কার্যকারিতা এবং উত্তরে মূল মন্তব্যে লিঙ্ক করার ক্ষমতা অবশ্যই দুর্দান্ত হবে।
Tgr

5

পিএইচপি-তে বেশ কয়েকটি শালীন অ্যারে ফাংশন রয়েছে, কলব্যাক সহ লিস্ট প্রসেসিং ক্ষমতা create_function()সরবরাহ করে এবং একটি বেসিক ল্যাম্বডা ক্যালকুলাস সরবরাহ করে।

এটির সাথে মুখ্য সমস্যাটি হ'ল এটি পিএইচপি-তে অনেক বেশি ভার্জোজ, শর্টহ্যান্ড সিস্টেমটি দুর্দান্ত হবে, বিশেষত যেখানে মানচিত্র / হ্রাস আদেশগুলি সম্পর্কিত।

আরও গুরুত্বপূর্ণ, তালিকার কাজগুলি সম্পূর্ণরূপে সম্পূর্ণ নয়:

  • কোনও foldrফাংশন নেই, array_reduce()সরবরাহ করেfoldl
  • array_map()দ্বিতীয় আর্গুমেন্টে কীটি পাস করা উচিত array_walk()does
  • একটি array_map_keys()কী পরিবর্তনের জন্য দরকারী হতে পারে
  • তালিকা ধী, খুব ক্লাঙ্কি হয় range(), array_fill()এবং array_fill_keys()শুধু তাই অনেক ক্ষেত্রে হ্যান্ডেল, এবং array_filter()পৃথক হয়

আমি হাসকেলে পিএইচপি তৈরির লক্ষ্য রাখছি না, তবে পিএইচপি প্রায়শই তালিকার ধরণের ডেটা স্ট্রাকচার ম্যানিপুলেশনের জন্য ব্যবহৃত হয় এবং এই ক্ষেত্রে সরঞ্জামগুলির একটি সম্পূর্ণ সেট থাকা কার্যকর হবে।


1
আমার এক সহকর্মীও মনে করেন অ্যারে সম্পর্কিত ফাংশনগুলিতে আবার কিছু সংযোজন থাকতে পারে / হওয়া উচিত; তার গিথুব অ্যাকাউন্টে উল্লিখিত হয়েছে: এগুলি অ্যারে_ল () এবং অ্যারে_নেই () এর অভাব, যা যাচাই করে যে * কলব্যাকের দ্বারা প্রতিনিধিত্ব করা শর্তটি অ্যারেতে সমস্ত বা কোনও উপাদানকে ধারণ করে কিনা তা পরীক্ষা করে। gist.github.com/44350
kguest

5

অপারেটর ওভারলোডিং:

$result = $MatrixA + $MatrixB * $MatrixC;

1
এটি পিএইচপি একটি গতিশীল টাইপযুক্ত ভাষা হয়ে কতটা ভাল ক্লিক করবে তা নিশ্চিত নয় Not
বোল্টক্লক

5
সম্ভবত এটি যাদু পদ্ধতিগুলির মাধ্যমে সম্পন্ন করা উচিত, যেমন __add ($জেজ), __টাইমস ($জেজ) ইত্যাদি Mic Micha
T

এটি ইতিমধ্যে একটি পিসিএল এক্সট্রোল্ট হিসাবে উপস্থিত রয়েছে: pecl.php.net/package/operator । মূল উত্স
Xananax

4

E_WARNING উত্পাদন না করে ব্যতিক্রম যুক্ত করুন ... এটি খুব বিরক্তিকর যে আমি এমন কিছু ব্যবহার করতে পারি না:

try{
   $f = fopen('asd', 'r');
   flock($f, LOCK_SH);

   while(!feof($f)){
       echo fread($f, 512);
   }

   fclose($f);

}catch(IOException $ex){
   echo 'Oops, something wrong: '.$ex->getCode();
}

অবশ্যই, বর্তমানে খুব ব্যবহারিক নয় তবে এটি পেয়ে খুব বিরক্তিকর:

সতর্কতামূলক

সতর্কতামূলক

সতর্কতামূলক

এবং আমার নিজের ত্রুটি_হ্যান্ডলার এবং স্ট্রিং স্নিফিং না লিখে কোন প্রকার ত্রুটি উত্পন্ন হয়েছে তা ছাড়াই কোডের প্রবাহকে নিয়ন্ত্রণ করতে পারি না (অনুমতি, ভুল ফাইল নাম বা অন্য কোনও কিছুই; আমি এখানে ত্রুটির অন্যান্য উত্সগুলি নিয়ে কিছু মনে করি না) সঠিক ব্যতিক্রমটি ছুঁড়ে ফেলার জন্য ।

আমি আশা করি কেন এটি গুরুত্বপূর্ণ তা আমি ব্যাখ্যা করতে পারিনি।

পিএইচপি কিছুক্ষণ আগে অবজেক্ট-ওরিয়েন্টেড হয়ে গিয়েছিল এবং আমরা, পিএইচপি ব্যবহার করে এমন প্রোগ্রামাররা ওও বৈশিষ্ট্যগুলির জন্য অপেক্ষা করি, "গোটো" প্রবর্তন করি না ... যখন আমি সত্যিই এটি সুখী হয়েছিলাম, তখন আমি ভেবেছিলাম এটি একটি এপ্রিল ফুলের দিন।


ধরা না পড়লে ব্যতিক্রম স্ক্রিপ্টটি মেরে ফেলবে। একটি প্রোডাকশন সার্ভারে সতর্কতাটি লগ হয়ে যাবে এবং ব্যবহারকারীর কাছে প্রদর্শিত হবে না। এখন এই কার্যকারিতা পরিবর্তন করা অনেকগুলি স্ক্রিপ্টগুলি ভেঙে দেবে কারণ এগুলি এটি ধরার জন্য ডিজাইন করা হয়নি। (দ্রষ্টব্য, আমি নিজে ব্যতিক্রম ছুঁড়তে ত্রুটি হ্যান্ডলারগুলি লিখি)। এখন, PDO জিনিসগুলি সতর্কতা বা ব্যতিক্রম ছুঁড়ে ফেলতে পারে: প্রোগ্রামার রানটাইম স্থানে সিদ্ধান্ত নেয়। সেই কার্যকারিতাটি সম্ভবত মডিউলে আরও যুক্ত করা উচিত।
পুনরায় 45

4
  1. অবজেক্টের মডেলকে একীভূত করুন - সমস্ত অবজেক্টকে বেস অবজেক্ট ক্লাসটি বাড়ান। অবজেক্ট ক্লাসটি (অন্যান্য জিনিসগুলির মধ্যে) সমস্ত যাদু পদ্ধতি বাস্তবায়িত করবে (যাতে তারা আর যাদু হতে না!)

  2. এক্সটেনশানগুলি তাদের নিজস্ব নেমস্পেসে সরান - গ্লোবাল নেমস্পেসকে কল্ট করুন $conn = new \MySQLi\Connection();

  3. spl_autoload()ফাংশন আন-পঙ্গু ! গুরুতরভাবে, এটি সম্ভবত পিএইচপি এর অন্যতম দুর্দান্ত বৈশিষ্ট্য এবং একই সাথে সবচেয়ে অকেজো। spl_autoloadএটি ডিফল্ট অটোল্যাডার, যা নেমস্পেস এবং একাধিক ফাইল এক্সটেনশানগুলিকে সমর্থন করে তবে কোনও অজানা কারণে ফাইলের নামগুলি ছোট করে রাখা দরকার। এটির জন্য একটি বাগ রিপোর্ট পূর্ণ রয়েছে , কিন্তু কর্মীরা জবাব দিয়েছে যে তারা পিছিয়ে সামঞ্জস্যের কারণে এটি ঠিক করবে না। ঠিক আছে ... এটি নিজের অটোলোডার সহ প্রতিটি কাঠামো জাহাজের মতো নয়, কারণ ডিফল্টটি পঙ্গু হয়!



4

রঙিন সমর্থনটি সর্বশেষ সংস্করণে আনুন এবং এটি স্ট্যান্ডার্ড বিল্ডগুলিতে অন্তর্ভুক্ত করুন, সম্ভবত ডিফল্ট কনফিগারেশনে চালু করা হবে http://wiki.php.net/rfc/taint

এটি জনগণকে সঠিকভাবে কোড তৈরি করে এক্সএসএস এবং এসকিউএল ইঞ্জেকশন আক্রমণগুলিকে প্রতিরোধ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.