কীভাবে xdebug var_dump পূর্ণ বস্তু / অ্যারে প্রদর্শন করতে হয়


310

আমি ব্যবহার করছি xdebug উপর (php_xdebug-2.1.2-5.3-vc9.dll) wamp । যখন আমি var_dumpএকটি বড় অবজেক্ট বা ভেরিয়েবল ব্যবহার করি তখন এটি সম্পূর্ণ ভেরিয়েবলটি প্রদর্শন করে না।

array
'node' => 
  array
    'my_form' => 
      array
        'form' => 
          array
            ...

Xdebug ছাড়া এটি প্রত্যাশা করা উচিত হিসাবে প্রদর্শিত হয়। আমি ডকুমেন্টেশনের দিকে তাকালাম তবে কোনও সমাধান দেখতে পেলাম না। কেউ কি জানেন যে আমি কীভাবে এটি ঠিক করতে পারি xdebug সম্পূর্ণ বস্তুটি var_dumpদেখায় ?


মুদ্রণ_r সমস্ত নেস্ট করা মান সহ সম্পূর্ণ অ্যারে প্রিন্ট করবে।
রশ্মি জৈন

উত্তর:


603

এগুলি php.ini এ কনফিগারযোগ্য ভেরিয়েবল:

; with sane limits
xdebug.var_display_max_depth = 10
xdebug.var_display_max_children = 256
xdebug.var_display_max_data = 1024 


; with no limits
; (maximum nesting is 1023)
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1 

অবশ্যই, এগুলি রানটাইমের মাধ্যমেও সেট করা যেতে পারে ini_set(), যদি আপনি php.ini পরিবর্তন করতে না চান এবং আপনার ওয়েব সার্ভারটি পুনরায় চালু করতে না চান তবে দ্রুত আরও গভীরভাবে কিছু পরীক্ষা করতে হবে useful

ini_set('xdebug.var_display_max_depth', '10');
ini_set('xdebug.var_display_max_children', '256');
ini_set('xdebug.var_display_max_data', '1024');

Xdebug সেটিংস অফিসিয়াল ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে


19
আমি যুক্তি দিচ্ছি যে আপনি যদি আপনার কাছ থেকে আসলে কোনও তথ্য পাওয়ার প্রত্যাশা করেন তবে display_max_depth5 এর অঙ্কটি বুদ্ধিমান নয়var_dump
বেন হ্যারল্ড

2
@ বেনহরোল্ড আপনি তখন একটি সেটিং হিসাবে কী প্রস্তাব করবেন?
অ্যানারিট মাইবার্গ

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

3
আমি এই উত্তরটি গত ছয় মাসে দশবারেরও বেশি বার দেখেছি। আপনাকে ধন্যবাদ মাইকেল বারকোভস্কি, আমি চিরকাল তোমার inণে আছি।
লিংকন বার্গসন

2
@ লিংকনবার্গসন আমাকে নিজেও সর্বদা এটি সন্ধান করতে হবে।
মাইকেল বার্কোভস্কি

38

আমি জানি এটি একটি অতি পুরানো পোস্ট, তবে আমি বুঝতে পেরেছিলাম এটি এখনও সহায়ক হতে পারে।

আপনি যদি জসন ফর্ম্যাট পড়তে স্বাচ্ছন্দ্য বোধ করেন তবে আপনি আপনার var_dump এর সাথে প্রতিস্থাপন করতে পারেন:

return json_encode($myvar);

আমি যে পরিষেবাটি তৈরি করছি তার সমস্যার সমাধানের জন্য এটি ব্যবহার করছি যা কিছু গভীরভাবে নেস্টেড অ্যারে রয়েছে। এটি আপনার অ্যারের প্রতিটি স্তরের কোনও কিছুর ছাড়াই বা আপনার php.ini ফাইল পরিবর্তন করার প্রয়োজন ছাড়াই ফিরে আসবে।

এছাড়াও, যেহেতু json_encoded ডেটা একটি স্ট্রিং এর অর্থ এটি আপনি সহজেই ত্রুটি লগতে লিখতে পারেন

error_log(json_encode($myvar));

এটি প্রতিটি পরিস্থিতির জন্য সম্ভবত সেরা পছন্দ নয়, তবে এটি একটি পছন্দ!


12
আমি এই উত্তর ভালবাসি। এর মতো কিছু সহ আপনার একটি সুন্দর এইচটিএমএল আউটপুটও থাকতে পারে: '<pre>' .json_encode ($ myvar, JSON_PRETTY_PRINT) ফেরান </ </ translation> ';
ডেভিড

7
মনে রাখবেন যে সমস্ত ভেরিয়েবলগুলি json_encodeable নাও হতে পারে। যে বিষয়গুলি jsonserializable ইন্টারফেস বাস্তবায়ন করে না তারা কেবল একটি ফাঁকা অ্যারে "{}" ফিরিয়ে দেবে
ক্রিশ্চিয়ান স্যান্ডস্ট্রোম

2
এছাড়াও লক্ষণীয়, json_encoding কিছু আপনাকে প্রকারগুলি প্রদর্শন করবে না, তাই কোনও জিনিস যথাযথভাবে মিলে যায় কিনা তা সনাক্ত করা আরও কঠিন difficult
এসইওএফ

13

অথবা আপনি বিকল্প ব্যবহার করতে পারেন:

https://github.com/kint-php/kint

এটি শূন্য সেট আপের সাথে কাজ করে এবং যাইহোক Xdebug এর var_dump এর চেয়ে অনেক বেশি বৈশিষ্ট্যযুক্ত। কিন্টের সাথে ফ্লাইয়ের নেস্টেড সীমাটি বাইপাস করতে, কেবল ব্যবহার করুন

 +d( $variable ); // append `+` to the dump call

12

আমি জানি এটি দেরি হয়ে গেছে তবে এটি কিছুটা কার্যকর হতে পারে:

echo "<pre>";
print_r($array);
echo "</pre>";

21
print_r()হয় না , var_dump জন্য একটি প্রতিস্থাপন।
অ্যানডেমন

চমত্কার উত্তর। ধন্যবাদ।
পিএইচপিস্টে

@ অ্যানআরডেমন সিরিয়াসলি?
পিএইচপিস্টে

, var_dump ([মিথ্যা]); print_r ([মিথ্যা]);
AnrDaemon

আমি জানি এটি দেরি হয়ে গেছে - তবে যা চান তার উপর নির্ভর করে প্রিন্ট_আর () সম্পূর্ণরূপে var_dump () এর প্রতিস্থাপন হতে পারে! আমি আর কখনও var_dump () ব্যবহার করি না কারণ আমি প্রায়শই অ্যারে এবং আইএমও প্রিন্ট_আর () এর কাঠামো দেখাতে চাই যা var_dump () এর চেয়ে অনেক বেশি ভাল দেখায়।
বেস্টপ্রোগ্রামারিন্থে ওয়ার্ল্ড


3

আমি সুপারিশ করতে চাই var_export($array)- এটি প্রকারগুলি প্রদর্শন করে না, তবে এটি আপনার কোডটিতে ব্যবহার করতে পারেন এমন সিনট্যাক্স উত্পন্ন করে :)

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