পিএইচপি YAML পার্সার্স [বন্ধ]


105

কেউ কি পিএইচপি জন্য ভাল YAML পার্সার সম্পর্কে জানেন? যদি তা হয় তবে এই লাইব্রেরির বিভিন্ন উপকারিতা কি?



16
+1 যদিও গঠনমূলক নয়, এই পৃষ্ঠাটি আমার পক্ষে অত্যন্ত সহায়ক ছিল
এরিক রবার্টসন

2
এই প্রশ্নের সর্বোচ্চ ভোট প্রাপ্ত উত্তরের গুণমান বিবেচনা করে অবাক করা বিষয় যে এই প্রশ্নটি "গঠনমূলক নয়" হিসাবে বন্ধ করা হয়েছিল।
dreftymac

আমি সবেমাত্র আমার বেবিয়াল এর পার্সার প্রকাশ করেছি, যা ইয়ামলের সহজ কাজিন, যদি আপনি আগ্রহী হন তবে তা এখানে দেখুন: github.com/lingtalfi/BabyYaml
ling

আমার এরিকরবার্টসনের সাথে একমত হতে হবে এবং ড্রেফটাইম্যাক এইটি আমার প্রশ্নের আক্ষরিক উত্তর দিয়েছিল, এবং এটি বন্ধ করা পরবর্তী সম্ভাব্য উত্তরের উত্তরকে বাধা দিয়েছে।
ফেরাউন সরঞ্জাম 19

উত্তর:


139

শেষ আপডেট : 26 জুলাই, 2017

এখানে পিএইচপি-তে YAML রাজ্যের সংক্ষিপ্তসার রয়েছে:

  • সি লাইব্রেরিতে র‌্যাপারস: আপনার যদি নিখরচায় গতি প্রয়োজন হয় তবে আপনি সম্ভবত এটিগুলি চাইবেন:
  • খাঁটি পিএইচপি বাস্তবায়ন:

    • sfYaml : সিমফোনির YAML উপাদান। আপনি এখানে এর লেখকদের প্রেরণা দেখতে পারেন । তিনি এমন কিছু চেয়েছিলেন যা " ব্যবহারে সহজ, দ্রুত, ইউনিট পরীক্ষা করা হয়েছিল এবং এর মধ্যে পরিষ্কার ত্রুটি বার্তা ছিল ।"
    • স্পাইক : নির্ভরতা ছাড়াই YAML পার্সার

এই লেখার সময়, পূর্বোক্ত সংস্করণগুলি পূর্বোক্ত লাইব্রেরিগুলির তারিখগুলি প্রকাশ করে এবং ওয়াইএএমএল স্পেসের সংস্করণগুলি (1.2 এটি সর্বশেষতম সংস্করণ) যা তারা সমর্থন করে:

php-yaml   1.3.0     2016-09-24     YAML 1.1  [PHP 5]
php-yaml   2.0.0     2016-09-24     YAML 1.1  [PHP 7]
syck       0.9.3     2008-11-18     YAML 1.0
sfYaml     3.3.5     2017-06-15     YAML 1.1, most of 1.2
spyc       0.6.2     2017-02-24     YAML 1.1 

1
অন্যান্য কম পরিচিত লাইব্রেরি (মত এই এক , বড় দল প্রকল্প থেকে), কিন্তু আমি এই মধ্যে অনেক উপত্যকা চাইনি।
নাল ইউজারএক্সেপশন

3
আমি প্রায় দুই বছর ধরে sfYaml ব্যবহার করে আসছি, এবং একটি পারফরম্যান্স পরীক্ষায় আমি বুঝতে পারি যে sfYaml :: পার্স () প্রসেসিংয়ের বেশিরভাগ সময় নিয়েছে। আমি পিএইচপি-ইয়ামল দিয়ে এটি প্রতিস্থাপন করেছি এবং অ্যাপ্লিকেশনটি এখন 70% দ্রুত! এটি একটি বিশাল পার্থক্য।
আটটিলা ফুলপ

1
পিএইচপি-র জন্য 2019 আপডেট: "স্পাইক" এর অনেকগুলি সমস্যা রয়েছে, যখন "এসএফওয়াইমেল" ভাল কাজ করে।
ভিলিয়াসল

49

স্পাইসি: https://github.com/mustangostang/spyc

খাঁটি পিএইচপি বাস্তবায়ন, সুতরাং আপনাকে ইনস্টলেশনের জন্য সার্ভারে কোনও পরিবর্তন করার দরকার নেই। গতি যদি মারাত্মক উদ্বেগের বিষয় হয় তবে এটি আদর্শ সমাধান নাও হতে পারে তবে আপনি যদি কনফিগারেশন বা তুলনামূলকভাবে কম-ভলিউম ব্যবহারের জন্য YAML ব্যবহার করেন তবে এটি একটি দুর্দান্ত সমাধান।

একটি ওয়াইএএমএল দস্তাবেজ দেওয়া হয়েছে, স্পাইসি এমন একটি অ্যারে ফিরিয়ে দেবে যা আপনি উপযুক্ত দেখতে চাইলেও ব্যবহার করতে পারেন।

require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);

একটি অ্যারে দেওয়া, স্পাইসি একটি স্ট্রিং ফিরিয়ে দেবে যা আপনার ডেটা থেকে তৈরি ওয়াইএএমএল ডকুমেন্ট ধারণ করে।

$yaml_str = Spyc::YAMLDump($myarray);

1
+1 আমি একটি আমদানি স্ক্রিপ্টে YAML ব্যবহার করার জন্য দ্রুত এবং সহজ উপায় চেয়েছিলাম। আমার অ্যাপ্লিকেশনটির আমদানির বাইরে কোনও সাপোর্টের প্রয়োজন নেই (এবং সম্ভবত কোনও দিন রফতানি করা হবে)। আমি খুঁজে পেয়েছি যে স্পাইকটি, "এখনও অন্য YAML পার্সার" হিসাবে তালিকাভুক্ত ছিল 1 ক্লিকের সমাধান। আমি আমার স্ক্রিপ্টস ফোল্ডারে একটি স্ক্রিপ্ট ফেলেছি, এটি অন্তর্ভুক্ত করেছি এবং একটি পদ্ধতি বলেছি। এটি এর চেয়ে সহজ হয় না, এবং এখন আমি আবার কাজে ফিরে যাচ্ছি - রোডব্লক সরানো হয়েছে।
এরিক রবার্টসন

1
পুরানো এবং প্রচুর পার্স ইয়ামল ফাইল ভুলভাবে (কিছু ডেটা হারিয়ে গেছে)।
ভিলিয়াসল


7

সিমফনি 2 এর একটি ওয়াইএএমএল উপাদান রয়েছে যা বেশিরভাগ ওয়াইএএমএল 1.2 বৈশিষ্ট সমর্থন করে

https://github.com/symfony/Yaml


এটি একটি ভাল উত্তর কারণ Symfony2 YAML পার্সার পুরানো নয়। sfYamlযেমন।
ফেরেডনেটর

3

আপনি যদি আপনার প্রকল্পে প্রচুর পরিমাণে YAML ব্যবহার করছেন তবে আপনি দেখতে পাচ্ছেন যে স্পাইক বা সিমফনি ইএএমএল এর মতো খাঁটি পিএইচপি লাইব্রেরি যথেষ্ট দ্রুত নয়। সি ইয়ামএল পার্সারদের জন্য কমপক্ষে দুটি পিএইচপি বাইন্ডিং রয়েছে:

  • yaml - LibYAML YAML 1.1 পার্সার লাইব্রেরির জন্য একটি মোড়ক
  • সিঙ্ক - স্যাক ইয়ামএল 1.0 পার্সার লাইব্রেরির জন্য একটি মোড়ক


2

ব্যবহার করে দেখুন sfYaml , এটা শ্রেষ্ঠ আমি জানি হয়।

সিমফনি এবং মতবাদ ওআরএম এটি ব্যবহার করছে।

এটি পেতে, আপনি ডক্ট্রাইন 1.2 ডাউনলোড করতে পারেন এবং ডিরেক্টরি sfYamlথেকে নিষ্কাশন করতে পারেন vendor

এটি আপনার প্রয়োজন অনুসারে তা আমাদের জানান।


2

আপনার যদি আপনার ওয়াইএএমএলটি দ্রুত পরীক্ষা করতে হয় তবে আমি তৈরি করেছি: http://yaml-online-parser.appspot.com/ । এটি আমাকে ওয়াইএএমএল লিখতে সহায়তা করে, বিশেষত কেবল শিখার সময়।

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