টি এল; ডিআর
$qb = ... // your query builder
$query = $qb->getQuery();
// temporarily enable logging for your query (will also work in prod env)
$conf = $query->getEntityManager()->getConnection()->getConfiguration();
$backupLogger = $conf->getSQLLogger();
$logger = new \Doctrine\DBAL\Logging\DebugStack();
$conf->setSQLLogger($logger);
// execute query
$res = $query->getResult();
$conf->setSQLLogger($backupLogger); //restore logger for other queries
$params = [
'query' => array_pop($logger->queries) //extract query log details
//your other twig params here...
]
return $params; //send this to your twig template...
আপনার টুইগ ফাইলগুলিতে ডক্ট্রাইনের টুইগ হেল্প ফিল্টারগুলি ব্যবহার করুন:
// show raw query:
{{ (query.sql ~ ';')|doctrine_replace_query_parameters(query.params)
// highlighted
{{ (query.sql ~ ';')|doctrine_replace_query_parameters(query.params)|doctrine_pretty_query(highlight_only = true) }}
// highlighted and formatted (i.e. with tabs and newlines)
{{ (query.sql ~ ';')|doctrine_replace_query_parameters(query.params)|doctrine_pretty_query }}
ব্যাখ্যা:
প্রস্তুত করা বিবৃতি আসলে "বাস্তব প্রশ্নগুলি" বলে উল্লেখ করা অন্য উত্তরগুলি সঠিক, তবে তারা সুস্পষ্ট জিজ্ঞাসকের প্রত্যাশার উত্তর দেয় না ... প্রতিটি বিকাশকারী ডিবাগিংয়ের জন্য একটি "রানযোগ্য ক্যোয়ারী" প্রদর্শন করতে চায় (বা এটি ব্যবহারকারীকে প্রদর্শন করতে) ।
সুতরাং, আমি সিম্ফনি প্রোফাইলারের উত্সটি দেখেছিলাম তারা কীভাবে তা দেখে। মতবাদ অংশটি মতবাদের দায়িত্ব তাই তারা সিমফনির সাথে সংহত করার জন্য একটি মতবাদ-বান্ডেল তৈরি করেছিল। এক নজরেdoctrine-bundle/Resources/views/Collector/db.html.twigফাইলটি আপনি কীভাবে এটি ব্যবহার করবেন তা আবিষ্কার করবেন (এটি সংস্করণে পরিবর্তিত হতে পারে)। মজার বিষয় হল, তারা দ্বিগুণ ফিল্টার তৈরি করেছে যা আমরা পুনরায় ব্যবহার করতে পারি (উপরে দেখুন)।
সমস্ত কিছুর জন্য আমাদের অনুসন্ধানের জন্য লগিং সক্ষম করতে হবে। এটি করার একাধিক উপায় রয়েছে এবং আমি এখানে ডিবাগস্ট্যাক ব্যবহার করি যা এগুলি আসলে মুদ্রণ না করে প্রশ্নগুলি লগ করতে দেয়। এটিও নিশ্চিত করে যে এটি আপনার যদি প্রয়োজন হয় তবে এটি উত্পাদন মোডে কাজ করবে ...
আপনার যদি আরও ফর্ম্যাটিংয়ের প্রয়োজন হয় তবে আপনি দেখতে পাবেন যে তারা কোনও স্টাইল ট্যাগে কিছু সিএসএস অন্তর্ভুক্ত করে তাই কেবল এটি "চুরি" ":
.highlight pre { margin: 0; white-space: pre-wrap; }
.highlight .keyword { color: #8959A8; font-weight: bold; }
.highlight .word { color: #222222; }
.highlight .variable { color: #916319; }
.highlight .symbol { color: #222222; }
.highlight .comment { color: #999999; }
.highlight .backtick { color: #718C00; }
.highlight .string { color: #718C00; }
.highlight .number { color: #F5871F; font-weight: bold; }
.highlight .error { color: #C82829; }
আশা করি, এটি সাহায্য করবে ;-)