আমি যেখানে তৃতীয় পক্ষের lib থেকে .php, .js, .html, .css ফাইলগুলি রাখি যা আমার বর্ধিত কোনও এক্সটেনশনের ইন্টারফেস করে?


10

আসুন আমি বলি যে আমি একটি ম্যাজেন্টো এক্সটেনশানটি বিকাশ করতে চাই যা একটি ওপেন সোর্স চার্টিং প্যাকেজ বা কোনও চিত্র গ্যালারী বা এটি যে কোনও একটিই এক্সটেনশনের অংশ নয় interface ডাউনলোড করার সময় (এক্সটেনশান থেকে পৃথক) তৃতীয় পক্ষের লিবিব তার নিজস্ব একক .zip এর সমস্ত। Php, .js, .html এবং .css একসাথে আসে।

আমি কি দরিদ্র সাইট-মালিকদের উপরে রাখি, যারা আমার এক্সটেনশানটি তৃতীয় পক্ষের লাইবের সাথে একত্রে ইনস্টল করতে ইচ্ছুক, মূল 3 য় পক্ষকে টানানোর বোঝা। জিপ বাদ দিয়ে তাদের .js / js, .php ইন / লিবিতে,। সিএসএস ইন / স্কিন ইত্যাদি?

অথবা যে কোনও তৃতীয় পক্ষের জন্য একটি সাধারণভাবে গৃহীত "ডাম্পিং গ্রাউন্ড" রয়েছে? জিপগুলি যেখানে সহজেই ডাউনলোড এএস আইএস ডাউনলোড থেকে আনজিপ করা যায় এবং এটি দিয়ে করা যায়?

উত্তর:


6

আমি জানি না যে এই প্রশ্নের কোনও একক সঠিক উত্তর আছে কিনা কারণ এটি সত্যই আপনি যে কোডটি অন্তর্ভুক্ত করছেন তার উপর নির্ভর করে।

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

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

দুর্ভাগ্যত্যাগে ম্যাজেন্টো 1 এক্সটেনশন সিস্টেমটি এই ধরণের জিনিস বিতরণ করা সহজ করে না কারণ ফাইলগুলি একটি একক দিরের মধ্যে থাকা না হয়ে পুরো প্রকল্পের মাধ্যমে ছড়িয়ে পড়ে। ম্যাজেন্টো সুরকার ইনস্টলার এবং মোডম্যানের মতো সরঞ্জামগুলি এটিকে কিছুটা সহায়তা করে।


4

ডাউনলোড করার সময় (এক্সটেনশন থেকে পৃথক) তৃতীয় পক্ষের এক্সটেনশনগুলি তার নিজস্ব .pip, .js, .html এবং .css এর সাথে একসাথে আসে z

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

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

এই সম্পদগুলি কোথায় যায় তা টাইপ এবং ফাইলগুলির অভ্যন্তরীণ সংস্থার উপর নির্ভর করে। খাঁটি জেএস গ্রন্থাগারগুলির আওতাধীন হওয়া উচিত ./js/। যে ফাইলগুলি সার্ভার-সাইডে সম্পাদিত হয় সেগুলি অন্তর্ভুক্ত ./lib/, উল্লেখ করে যে কোনও পিএইচপি ক্লাসের অধীনে ./lib/(মূলত পিএসআর -0) অটোলোয়াড স্কিম (রেফ। জেন্ড ফ্রেমওয়ার্ক 1 অটোলোড কনভেনশন) দ্বারা স্বয়ংক্রিয়ভাবে চলতে পারে। এর অধীনে কোনও কিছুই ./lib/ক্লায়েন্ট (রেফ। ./lib/.htaccess) এর মাধ্যমে অ্যাক্সেস করা যায় না ।


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

1
"এটি এই অর্থে আশীর্বাদ যে এক্সটেনশনের সংস্করণ এবং তৃতীয় পক্ষের লাইব সামঞ্জস্য বজায় রয়েছে ..." এটিই টিকিট! তাদের পরিবর্তনগুলি আপনার পরিবর্তন। সুরকারকে ধন্যবাদ Magento 2 এ এটি কিছুটা সহজ।
বেনমার্কস

1

সুতরাং আপনি একটি এক্সটেনশন তৈরি করতে চান এবং আপনি এটি তৈরির জন্য একটি বাহ্যিক সংস্থান / প্যাকেজ ব্যবহার করছেন। আমার মতে, আপনি আপনার এক্সটেনশনে যে প্যাকেজটি ব্যবহার করেছেন, আপনার এক্সটেনশনে ম্যাগ্যান্টো সেরা অনুশীলনগুলি অনুসরণ করা উচিত। এর অর্থ আপনার সমস্ত জেএস, সিএসএস, চিত্রগুলি বাহ্যিক উত্স থেকে পৃথক করা উচিত এবং base\defaultথিম প্যাকেজ ডিরেক্টরিতে রাখা উচিত ।

অর্থাত তৃতীয় পক্ষের প্যাকেজ সংস্থান স্থাপনের জন্য এমন কোনও অনন্য অবস্থানের উপস্থিতি নেই। শেষ পর্যন্ত আপনি যখন একটি দুর্দান্ত এক্সটেনশান সরবরাহ করেন তখন আপনার এক্সটেনশনের সাথে সম্পর্কিত সমস্ত জেএস, সিএসএস এবং চিত্রগুলি এমন জায়গায় রাখা উচিত যেখানে অন্য কোনও বিকাশকারী সাধারণত দেখা যায় এবং যা প্রায় ক্ষেত্রে base/defaultথিম প্যাকেজ।

সংক্ষেপে

আপনার সমস্ত এক্সটেনশন js এর আওতায় আসা উচিত

skin\frontent\base\default\js\[your_extension]\[all_of_your_js_files]
skin\frontent\base\default\css\[your_extension]\[all_of_your_css_files]
skin\frontent\base\default\images\[your_extension]\[all_of_your_images]

//for third parties, you can create an inner directory, to specify it
skin\frontent\base\default\js\[your_extension]\[your_external_resource]\[resource_js_files]
skin\frontent\base\default\css\[your_extension]\[your_external_resource]\[resource_css_files]
skin\frontent\base\default\images\[your_extension]\[your_external_resource]\[resource_image_files]

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

সুতরাং আমি আপনাকে বাহ্যিক প্যাকেজগুলি পৃথক করার এবং এগুলিকে আপনার এক্সটেনশনের একটি অংশ হিসাবে তৈরি করার পরামর্শ দিচ্ছি যাতে অন্য বিকাশকারী সহজেই আপনার নির্ভরতাগুলি খুঁজে পেতে পারে। :-)

সম্পাদনা - ১

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

/app
|_____code\community\Namespace\Module\...
|_____design
|        |_____frontend\base\defalt\...
|        |_____adminhtml\base\defalt\...

/skin
|_____frontend\base\default\js|css|images\[your_extension]\all_theme_related_files
|_____frontend\base\default\js|css|images\[your_extension]\all_theme_related_files

সম্পাদনা - 2

যদি কিছু প্যাকেজ থাকে, যা সমস্ত Magento অ্যাপ্লিকেশনগুলিতে ভাগ করা উচিত (যেমন একটি জাভাস্ক্রিপ্ট লাইব্রেরি, বা পিএইচপি প্যাকেজ ইত্যাদি), তবে আপনি সেগুলি \libডিরেক্টরিতে রাখতে পারেন।

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


ধন্যবাদ. আপনার উত্তরটি সাইট-মালিক পক্ষের পরিবর্তে বিকাশকারী দৃষ্টিভঙ্গির পক্ষে ors তবে আমার ধারণা, ম্যাজেন্টোতে সেভাবেই আছে? আমি অন্যান্য সিএমএস'দের সম্পর্কে জানি যেগুলি সমস্ত ফাইলকে আসল উপায়ে ঠিক রেখে একইভাবে তৃতীয় পক্ষের সংরক্ষণাগারগুলি / লিবসগুলি আনজিপ করার জায়গাগুলিতে সম্মত হয়েছে।
fris

1
হ্যাঁ. আমি জানি এটি একটি প্যাকেজ সংস্থান আলাদা করতে হতাশ। ম্যাজেন্টো এটির দাবি করে। এটির জন্য কোনও সহজ উপায় নেই। ম্যাজেন্টো সেরা অনুশীলনগুলি বলে "আপনার সমস্ত js, css, imagesকিছু base\defaultপ্যাকেজে রাখা উচিত "। আমার সম্পাদনা
কোডটিও দেখুন

হাই রাজীব ... বাহ্যিক রিসোর্স / লিবিব ফাইলগুলিকে "আপনার_ এক্সটেনশন" এর অধীনে রাখার আরও একটি পরিণতি হ'ল এটি অন্য এক্সটেনশানগুলি দ্বারা ভাগ করা যায় না যা সংস্থান / লাইব ব্যবহার করতে পারে। সুতরাং আপনি একই পৃষ্ঠায় লোড হওয়া একাধিক অনুলিপি, সম্ভবত পৃথক পৃথক ক্লাশিং সংস্করণ দিয়ে শেষ করেছেন। সেকি!
ফ্রিস

দয়া করে আমার সম্পাদনাগুলি দেখুন
রাজীব কে তোমি

0

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


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

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

ঠিক আছে ধন্যবাদ. সুতরাং আপনার উত্তরটি হ'ল: হ্যাঁ ম্যাগেন্টো সাইট নির্মাতাদের অবশ্যই 3 য় পক্ষের সংরক্ষণাগারটি আনজিপ করে পিএইচপি, জেএস, এইচটিএমএল এবং সিএসএস অংশগুলি আর্কাইভের বাইরে টানতে হবে এবং সেই ফাইলগুলি ম্যাজেন্টো ফাইল ট্রিতে উপযুক্ত স্লটে পুনরায় বিতরণ করতে হবে। সাইট বিল্ডারকে কেবলমাত্র এই উদ্দেশ্যে নির্ধারিত কিছু সাধারণভাবে অনুমোদিত ডিরেক্টরিতে সম্পূর্ণ তৃতীয় পক্ষের সংরক্ষণাগারটি আনজপ করার অনুমতি দেওয়া সর্বোত্তম অনুশীলন হিসাবে বিবেচিত হয় না যেখানে সম্পর্কিত এক্সটেনশানগুলি তৃতীয় পক্ষের ফাইলগুলিকে প্রয়োজনীয়ভাবে অন্তর্ভুক্ত করবে।
23:

হ্যাঁ. আপনার বর্ণিত সমস্ত কিছু ইতিমধ্যে ডকুমেন্টেশনে বর্ণিত প্যাকিং প্রক্রিয়াতে আচ্ছাদিত।
মবলপর্দা

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

0

মূলত Magento রাখা এটা নিজস্ব কাঠামো ব্যবহার .php, .phtml, js, css, imagesফাইল।

ম্যাজেন্টো এক্সটেনশন বিকাশকারীদের জন্য আপনি ম্যাজেন্টো পদ্ধতি অনুসরণ করা খুব গুরুত্বপূর্ণ। এই লিঙ্কটি পরীক্ষা করুন

সুতরাং,

  1. আপনার .phpফাইলগুলি app/code/communityফোল্ডারের নিচে যেতে হবে
  2. তোমার jsফাইল ফিরে যেতে পারেন jsফোল্ডার বা মধ্যে skin/frontend or adminhtml/your_theme_pack/your_theme/jsফোল্ডারের
  3. আপনার cssফাইলগুলি skin/frontend or adminhtml/your_theme_pack/your_theme/cssফোল্ডারে যেতে পারে
  4. আপনার imagesফাইলগুলি skin/frontend or adminhtml/your_theme_pack/your_theme/imagesফোল্ডারে যেতে পারে
  5. আপনার 'এইচটিএমএল files should go toঅ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড বা প্রশাসনিক / টেমপ্লেট ফোল্ডার `

পিএস ফ্রন্টএন্ড মানে যদি আপনার এক্সটেনশানটি ফ্রন্ট স্টোরের জন্য হয় এবং অ্যাডমিনটিএমএল মানে আপনার এক্সটেনশান অ্যাডমিন অঞ্চলের জন্য হয় if

ম্যাজেন্টোতে এই ফাইলগুলি ধরে রাখার নির্দিষ্ট উপায় রয়েছে, সুতরাং আপনার সেগুলি অনুসরণ করা উচিত।

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

আশাকরি এটা সাহায্য করবে.

আপডেট 1

আপনি যদি নিজের ফাইলগুলি কোথাও ধরে রাখতে চান তবে আপনি যে কোনও জায়গায় রাখতে পারবেন। এমনকি আপনি ম্যাজেন্টো মূলের মধ্যে নতুন ফোল্ডার তৈরি করতে পারেন। তবে ম্যাজেন্টোর পক্ষে এটি সর্বোত্তম অনুশীলন নয়, যা এই ফাইলগুলি সম্পাদন করার সময় আপনার সার্ভারটি লোড হবে। আপনি এই https://magentotherightway.com/ পরীক্ষা করতে চান


লিঙ্ক এবং ব্যাখ্যা জন্য ধন্যবাদ। তবে আমি নিজেই এই এক্সটেনশন সম্পর্কে জিজ্ঞাসা করছি না। আমি এক্সটেনশানটিতে অন্তর্ভুক্ত নেই তৃতীয় পক্ষের কোডটি কোথায় রাখব তা সম্পর্কে জিজ্ঞাসা করছি। এর জন্য কি সাধারণভাবে একমত একক অবস্থান রয়েছে?
ফ্রিস

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

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