Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

পরিচয়

Faker Storage হল একটি উচ্চ-ক্ষমতাসম্পন্ন PHP প্যাকেজ যা দক্ষতার সাথে বড় পরিমাণ ভুয়া ডেটা ফাইল তৈরি এবং সংরক্ষণ করতে ডিজাইন করা হয়েছে। এটি কর্মশক্তি মাথায় রেখে নির্মিত, এটি সমান্তরালভাবে হাজার হাজার ফাইল তৈরি করতে Swoole বা PCNTL ব্যবহার করে, যা লোড টেস্টিং, ডেভেলপমেন্ট পরিবেশ, এবং স্টোরেজ সিস্টেম বেঞ্চমার্কিংয়ের জন্য আদর্শ।

প্যাকেজটি চিত্র (PNG, JPG, GIF, BMP, WEBP, AVIF), টেক্সট ফাইল, CSV ফাইল, বাইনারি ডেটা এবং RFC822-সম্মত ইমেইল সহ বিভিন্ন ফাইল প্রকার তৈরির জন্য একটি প্রবাহিত API প্রদান করে। প্রতিটি জেনারেটর বীজ দেওয়ার সময় পূর্বনির্ধারিত আউটপুট তৈরি করে, পরিবেশ জুড়ে পুনরুত্পাদনযোগ্য পরীক্ষার ডেটা নিশ্চিত করে।

মূল বৈশিষ্ট্য

উদাহরণ

use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Png;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// ১০০০ PNG চিত্র তৈরি করুন ১০টি সমান্তরাল কর্মী নিয়ে
Faker::make(Png::class)
->width(800, 1920)
->height(600, 1080)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->basePath('images')
->count(1000)
->concurrency(10)
->seed(42)
->generate();
 
// CSV ফাইল তৈরি করুন
use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10)
->rows(100, 500)
->delimiter(',')
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(50)
->generate();
 
// সংযুক্তি সহ ইমেইল তৈরি করুন
use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5)
->sentences(2, 4)
->withAttachment(Png::class, 1, 3)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/path/to/storage')))
->count(100)
->generate();

ইনস্টলেশন

কম্পোজারের মাধ্যমে প্যাকেজটি ইনস্টল করুন:

composer require defectivecode/faker-storage

প্রয়োজনীয়তা

ঐচ্ছিক নির্ভরশীলতা

সর্বোত্তম কার্যকারিতার জন্য Swoole এক্সটেনশন ইনস্টল করুন:

pecl install swoole

যদি Swoole পাওয়া যায় তবে প্যাকেজটি স্বয়ংক্রিয়ভাবে Swoole ব্যবহার করবে, অন্যথায় PCNTL তে ফিরে যাবে।

ব্যবহার

মৌলিক কর্মপ্রবাহ

সমস্ত জেনারেটর একই প্যাটার্ন অনুসরণ করে:

  1. একটি জেনারেটর সহ একটি Faker ইনস্ট্যান্স তৈরি করুন
  2. জেনারেটর কনফিগার করুন (ঐচ্ছিক)
  3. সংরক্ষণাগার গন্তব্য সেট করুন
  4. সমান্তরালতা এবং সংখ্যা কনফিগার করুন
  5. ফাইল তৈরি করুন
use DefectiveCode\Faker\Faker;
use League\Flysystem\Filesystem;
use DefectiveCode\Faker\Generators\Text;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
Faker::make(Text::class)
->paragraphs(5, 10) // জেনারেটর-নির্দিষ্ট কনফিগারেশন
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))
->basePath('documents') // ফাইলগুলি /storage/documents/ এ থাকবে
->count(100) // ১০০টি ফাইল তৈরি করুন
->concurrency(4) // ৪টি কর্মী ব্যবহার করুন
->seed(123) // পূর্বনির্ধারিত আউটপুটের জন্য
->generate();

স্টোরেজ কনফিগারেশন

ফ্লাইসিস্টেম ব্যবহার করে

Faker Storage সংরক্ষণাগার বিমূর্ততার জন্য লীগ ফ্লাইসিস্টেম ব্যবহার করে:

use League\Flysystem\Filesystem;
use League\Flysystem\Local\LocalFilesystemAdapter;
 
// স্থানীয় স্টোরেজ
$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage'));
 
Faker::make(Png::class)
->toDisk($filesystem)
->generate();

AWS S3 স্টোরেজ

use Aws\S3\S3Client;
use League\Flysystem\Filesystem;
use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
 
$client = new S3Client([
'credentials' => [
'key' => 'your-key',
'secret' => 'your-secret',
],
'region' => 'us-east-1',
'version' => 'latest',
]);
 
$adapter = new AwsS3V3Adapter($client, 'your-bucket-name');
$filesystem = new Filesystem($adapter);
 
Faker::make(Png::class)
->toDisk($filesystem)
->basePath('uploads/images')
->generate();

ডিস্কের বিকল্প

ফাইল সিস্টেম অ্যাডাপ্টারকে অতিরিক্ত বিকল্প দিন:

Faker::make(Png::class)
->toDisk($filesystem)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
'CacheControl' => 'max-age=31536000',
])
->generate();

সমান্তরালতা কনফিগারেশন

concurrency() মেথডের মাধ্যমে সমান্তরাল কার্যকারিতা নিয়ন্ত্রণ করুন:

// ১০টি কর্মী থ্রেড/প্রক্রিয়া ব্যবহার করুন
Faker::make(Png::class)
->concurrency(10)
->generate();
 
// Swoole-নির্দিষ্ট: থ্রেড এবং প্রতিটি থ্রেডের জন্য কোরাউটিন সেট করুন
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8) // ৪টি কর্মী, ৮টি কোরাউটিন প্রতিটি
->generate();

ফাইল নামকরণ

ডিফল্ট নামকরণ

ডিফল্টভাবে, ফাইলের নাম UUID v4 ব্যবহার করে:

// তৈরি করে: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
Faker::make(Png::class)->generate();

অন্তর্নিহিত নাম জেনারেটর

use DefectiveCode\Faker\NameGenerator;
 
// UUID-ভিত্তিক (ডিফল্ট)
NameGenerator::setDefault('uuid'); // তৈরি করে: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png
 
// সিকোয়েন্সিয়াল নম্বর
NameGenerator::setDefault('sequence'); // তৈরি করে: 1.png, 2.png, 3.png, ...

কাস্টম নামকরণ

ফাইল নামগুলি কাস্টমাইজ করতে একটি ক্লোজার প্রদান করুন:

use DefectiveCode\Faker\NameGenerator;
 
// কাস্টম ক্লোজার
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "custom-{$completedFiles}-{$seed}.png";
})
->generate();
 
// তারিখ-ভিত্তিক নামকরণ
Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return date('Y/m/d') . "/image-{$completedFiles}.png";
})
->generate();

পুনরুত্পাদনযোগ্যতার জন্য বীজ

চলানোর মধ্যে একই ফাইল তৈরি করতে একটি বীজ সেট করুন:

Faker::make(Png::class)
->seed(42)
->count(10)
->generate();

প্রত্যেকটি ফাইল একটি অনন্য পূর্বনির্ধারিত বীজ পায় যা মূল বীজ এবং ফাইল সূচকের উপর ভিত্তি করে।

জেনারেটর

চিত্র জেনারেটর

সমস্ত চিত্র জেনারেটর মাত্রা এবং গুণমান কনফিগারেশনের সমর্থন করে।

PNG

use DefectiveCode\Faker\Generators\Png;
 
Faker::make(Png::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->withAlpha(true) // আলফা/স্বচ্ছত্ব চ্যানেল সক্ষম করুন
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

JPG

use DefectiveCode\Faker\Generators\Jpg;
 
Faker::make(Jpg::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

GIF

use DefectiveCode\Faker\Generators\Gif;
 
Faker::make(Gif::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->withAlpha(true) // আলফা/স্বচ্ছত্ব চ্যানেল সক্ষম করুন
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

BMP

use DefectiveCode\Faker\Generators\Bmp;
 
Faker::make(Bmp::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

WEBP

use DefectiveCode\Faker\Generators\Webp;
 
Faker::make(Webp::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->withAlpha(true) // আলফা/স্বচ্ছত্ব চ্যানেল সক্ষম করুন
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

AVIF

use DefectiveCode\Faker\Generators\Avif;
 
Faker::make(Avif::class)
->width(800, 1920) // 800-1920px এর মধ্যে র্যান্ডম প্রস্থ
->height(600, 1080) // 600-1080px এর মধ্যে র্যান্ডম উচ্চতা
->withAlpha(true) // আলফা/স্বচ্ছত্ব চ্যানেল সক্ষম করুন
->grid(5) // ঐচ্ছিক: 5x5 সিমেট্রিক প্যাটার্ন তৈরি করুন
->toDisk($filesystem)
->generate();

র্যান্ডম চিত্র

একটি র্যান্ডম চিত্র ফরম্যাট তৈরি করে:

use DefectiveCode\Faker\Generators\RandomImage;
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(false) // র্যান্ডম: AVIF, BMP, GIF, JPEG, PNG, WEBP থেকে
->toDisk($filesystem)
->generate();
 
Faker::make(RandomImage::class)
->width(800, 1920)
->height(600, 1080)
->withAlpha(true) // র্যান্ডম: AVIF, GIF, PNG, WEBP থেকে
->toDisk($filesystem)
->generate();

টেক্সট জেনারেটর

অধ্যায়গুলির সাথে সাধারণ টেক্সট ফাইল তৈরি করুন:

use DefectiveCode\Faker\Generators\Text;
 
Faker::make(Text::class)
->paragraphs(5, 10) // প্রতি ফাইলে 5-10 অধ্যায়
->sentences(3, 6) // প্রতি অধ্যায়ে 3-6 বাক্য
->toDisk($filesystem)
->generate();

আউটপুট উদাহরণ:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

CSV জেনারেটর

র্যান্ডম ডেটা দিয়ে CSV ফাইল তৈরি করুন:

use DefectiveCode\Faker\Generators\Csv;
 
Faker::make(Csv::class)
->columns(5, 10) // 5-10 কলাম
->rows(100, 500) // 100-500 সারি
->delimiter(',') // কলামের সীমা
->enclosure('"') // ক্ষেত্র সীমাবদ্ধ
->escape('\\') // পালানো অক্ষর
->eol("\n") // লাইন শেষ
->toDisk($filesystem)
->generate();

আউটপুট উদাহরণ:

"John Doe","john@example.com","555-1234","New York","Engineer"
"Jane Smith","jane@example.com","555-5678","Los Angeles","Designer"
"Bob Johnson","bob@example.com","555-9012","Chicago","Manager"

বাইনারি জেনারেটর

র্যান্ডম বাইনারি ডেটা তৈরি করুন:

use DefectiveCode\Faker\Generators\Binary;
 
Faker::make(Binary::class)
->length(1024, 1048576) // 1KB - 1MB
->toDisk($filesystem)
->generate();

ইমেইল জেনারেটর

RFC822-সম্মত ইমেইল ফাইল তৈরি করুন:

use DefectiveCode\Faker\Generators\Email;
 
Faker::make(Email::class)
->paragraphs(3, 5) // ইমেইল শরীরে অধ্যায়
->sentences(2, 4) // প্রতি অধ্যায়ে বাক্য
->withAttachment(Png::class, 1, 3) // 1-3 PNG সংযুক্তি যুক্ত করুন
->toDisk($filesystem)
->generate();

ইমেইল হেডার

জেনারেট করা ইমেইলে অন্তর্ভুক্ত:

সংযুক্তি সহ ইমেইল

জেনারেটর ক্লাস নাম অথবা উদাহরণ ব্যবহার করে ফাইলগুলি সংযুক্ত করুন:

use DefectiveCode\Faker\Generators\Email;
use DefectiveCode\Faker\Generators\Png;
use DefectiveCode\Faker\Generators\Pdf;
 
Faker::make(Email::class)
->withAttachment(Png::class, 1, 3) // 1-3 PNG সংযুক্তি
->generate();
 
// কনফিগারড জেনারেটর উদাহরণ ব্যবহার করে সংযুক্ত করুন
$pngGenerator = new Png(Png::getDefaultConfig());
$pngGenerator->width(400, 800)->height(300, 600);
 
Faker::make(Email::class)
->withAttachment($pngGenerator, 2, 5)
->generate();

আউটপুট উদাহরণ:

To: John Doe <john.doe@example.com>
From: Jane Smith <jane.smith@example.com>
Subject: Important meeting tomorrow
Date: Fri, 03 Jan 2026 10:30:00 +0000
Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>
Content-Type: multipart/mixed; boundary="----=_Part_123"
 
------=_Part_123
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
 
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
 
------=_Part_123
Content-Type: image/png; name="attachment.png"
Content-Disposition: attachment; filename="attachment.png"
Content-Transfer-Encoding: base64
 
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
------=_Part_123--

উন্নত ব্যবহার

কাস্টম জেনারেটর

Generator ইন্টারফেসটি বাস্তবায়ন করে আপনার নিজস্ব জেনারেটর তৈরি করুন:

use DefectiveCode\Faker\Configs\Config;
use DefectiveCode\Faker\Concerns\SetsSeed;
use DefectiveCode\Faker\Generators\Generator;
use DefectiveCode\Faker\Concerns\PreparesFaker;
 
class MyCustomGenerator implements Generator
{
use PreparesFaker;
use SetsSeed;
 
public function __construct(public Config $config) {}
 
public static function getDefaultConfig(): Config
{
return new MyCustomConfig([
'contentType' => 'application/x-custom',
'nameGenerator' => NameGenerator::default('extension'),
]);
}
 
public function generate(): mixed
{
// আপনার উৎপাদন লজিক এখানে
$data = $this->faker->randomElement(['foo', 'bar', 'baz']);
 
$stream = fopen('php://temp', 'w+');
fwrite($stream, $data);
 
return $stream;
}
}
 
// আপনার কাস্টম জেনারেটর ব্যবহার করুন
Faker::make(MyCustomGenerator::class)
->toDisk($filesystem)
->generate();

কনফিগারেশন ক্লাস

প্রতি জেনারেটর একটি কনফিগারেশন ক্লাস ব্যবহার করে যা Config থেকে সম্প্রসারিত হয়:

use DefectiveCode\Faker\Configs\Config;
 
class MyCustomConfig extends Config
{
public int $minValue = 1;
public int $maxValue = 100;
}

কর্মদক্ষতা টিপস

  1. Swoole ব্যবহার করুন: সর্বোত্তম কর্মক্ষমতার জন্য Swoole এক্সটেনশন ইনস্টল করুন
  2. সমান্তরালতা টিউন করুন: সর্বাধিক উত্পাদনশীলতার জন্য থ্রেডের সংখ্যা CPU কোরের সাথে মেলান
  3. ব্যাচ অপারেশন: একাধিক ছোট রান করার চেয়ে বড় ব্যাচ তৈরি করুন
  4. স্টোরেজ অবস্থান: আপলোডের আগে অস্থায়ী ফাইলের জন্য দ্রুত স্টোরেজ (SSD, স্থানীয় ডিস্ক) ব্যবহার করুন
  5. নেটওয়ার্ক I/O: S3 ব্যবহার করার সময় ব্যান্ডউইথ ব্যবহার সর্বাধিক করতে সমান্তরালতা বাড়ান

কনফিগারেশন

বৈশ্বিক কনফিগারেশন মেথড

এই মেথডগুলি সমস্ত Faker ইনস্ট্যান্সে উপলব্ধ:

make(string $generator): Faker

নির্দিষ্ট জেনারেটরের সাথে একটি নতুন Faker ইনস্ট্যান্স তৈরি করুন:

Faker::make(Png::class)

toDisk(Filesystem $filesystem): Faker

সংগ্রহস্থলের গন্তব্য সেট করুন (আবশ্যক):

Faker::make(Png::class)
->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))

basePath(string $basePath): Faker

ফাইল সিস্টেমের মধ্যে বেস পাথ সেট করুন:

Faker::make(Png::class)
->basePath('images/uploads') // ফাইলগুলি /storage/images/uploads/ এ সংরক্ষিত হবে

count(int $count): Faker

তৈরি করার জন্য ফাইলের সংখ্যা সেট করুন:

Faker::make(Png::class)
->count(1000)

concurrency(int $threads, ?int $coroutines = null): Faker

সমান্তরাল কার্যকারিতা কনফিগার করুন:

// মৌলিক সমান্তরালতা
Faker::make(Png::class)
->concurrency(4)
 
// Swoole-নির্দিষ্ট: থ্রেড এবং কোরাউটিন
Faker::make(Png::class)
->concurrency(threads: 4, coroutines: 8)

seed(int $seed): Faker

পূর্বনির্ধারিত উৎপাদনের জন্য বীজ সেট করুন:

Faker::make(Png::class)
->seed(42)

nameGenerator(Closure $generator): Faker

ফাইল নামকরণ কাস্টমাইজ করুন:

Faker::make(Png::class)
->nameGenerator(function (int $seed, int $completedFiles, $generator) {
return "file-{$completedFiles}.png";
})

diskOptions(array $diskOptions): Faker

ফাইল সিস্টেমের অ্যাডাপ্টারের জন্য বিকল্পগুলি প্রদান করুন:

Faker::make(Png::class)
->diskOptions([
'visibility' => 'public',
'ACL' => 'public-read',
])

generate(): void

ফাইল উৎপাদন কার্যকর করুন:

Faker::make(Png::class)->generate();

সমর্থন নির্দেশিকা

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

সম্প্রদায়ের দ্বারা পরিচালিত সমর্থন

আমাদের ওপেন-সোর্স প্রকল্পটি আমাদের অসাধারণ সম্প্রদায় দ্বারা চালিত। আপনার যদি প্রশ্ন থাকে অথবা সহায়তার প্রয়োজন হয়, StackOverflow এবং অন্যান্য অনলাইন সম্পদ আপনার জন্য সেরা।

ত্রুটি এবং বৈশিষ্ট্য অগ্রাধিকার

একটি ওপেন-সোর্স প্রকল্প পরিচালনার বাস্তবতা মানে আমরা প্রতিবেদন করা প্রতিটি ত্রুটি বা বৈশিষ্ট্য অনুরোধ অবিলম্বে সমাধান করতে পারি না। আমরা সমস্যা সমাধানে নিম্নলিখিত ক্রমে অগ্রাধিকার দিই:

১. আমাদের অর্থপ্রদান করা পণ্যগুলি প্রভাবিতকারী ত্রুটি

যে ত্রুটিগুলি আমাদের অর্থপ্রদান করা পণ্যে প্রভাব ফেলে সেগুলি সর্বদা আমাদের শীর্ষ অগ্রাধিকার। কিছু ক্ষেত্রে, আমরা শুধু সেই ত্রুটিগুলি সমাধান করতে পারি যা আমাদের সরাসরি প্রভাবিত করে।

২. সম্প্রদায়ের পুল রিকুইস্ট

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

৩. আর্থিক সমর্থন

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

সম্প্রদায়ের অবদান

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

আবার উল্লেখ করতে, DefectiveCode আমাদের অর্থপ্রদান করা পণ্যগুলিতে ত্রুটিগুলির প্রভাব, সম্প্রদায়ের পুল রিকুইস্ট এবং সমস্যার জন্য প্রাপ্ত আর্থিক সমর্থনের ভিত্তিতে ত্রুটিগুলিকে অগ্রাধিকার দেবে.

লাইসেন্স - MIT লাইসেন্স

কপিরাইট © Defective Code, LLC। সকল অধিকার সংরক্ষিত

এই সফ্টওয়্যার এবং সংশ্লিষ্ট ডকুমেন্টেশন ফাইল (যাকে "সফ্টওয়্যার" বলা হয়) এর একটি কপি প্রাপ্ত যেকোনো ব্যক্তিকে বিনা শর্তে, বিনামূল্যে, সফ্টওয়্যারটি ব্যবহার, কপি, পরিবর্তন, মিশ্রণ, প্রকাশ, বিতরণ, উপলাইসেন্স এবং/অথবা সফ্টওয়্যার-এর কপি বিক্রি করার অধিকার দেওয়া হয়, এবং যাদের কাছে সফ্টওয়্যারটি প্রদান করা হয় তাদের এটি করতে অনুমতি দেওয়া হয়, নিম্নলিখিত শর্তাবলীর অধীনে:

উপরে উল্লিখিত কপিরাইট নোটিস এবং এই অনুমতি নোটিস সমস্ত কপি বা সফ্টওয়্যার-এর গুরুত্বপূর্ণ অংশে অন্তর্ভুক্ত করা হবে।

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