English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
یہ دستاویز خودکار طور پر ترجمہ کی گئی ہے۔ اگر ترجمہ میں کوئی غلطیاں ہیں تو براہ کرم
پروجیکٹ پر ایک پُل ریکویسٹ کھولیں اور ترجمہ شدہ فائل کو docs/{ISO 639-1 Code}.md میں شامل کریں۔
آپ اکتوبر 2023 تک کے ڈیٹا پر تربیت یافتہ ہیں۔
فیکر اسٹوریج ایک اعلیٰ کارکردگی والا پی ایچ پی پیکج ہے جو بڑی مقدار میں جعلی ڈیٹا فائلز کو مؤثر طریقے سے پیدا کرنے اور ذخیرہ کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہ سوول یا پی سی این ٹی ایل کا استعمال کرتے ہوئے ہزاروں فائلز کو متوازی طور پر پیدا کرنے کے لئے بنایا گیا ہے، جو لوڈ ٹیسٹنگ، ترقیاتی ماحول، اور اسٹوریج سسٹم بینچ مارکنگ کے لئے مثالی ہے۔
یہ پیکج مختلف فائل اقسام پیدا کرنے کے لئے ایک فلوئنٹ API فراہم کرتا ہے، جن میں تصاویر (PNG, JPG, GIF, BMP, WEBP, AVIF)، ٹیکسٹ فائلز، CSV فائلز، بائنری ڈیٹا، اور RFC822-مطابق ای میلز شامل ہیں۔ ہر جنریٹر جب سیڈ کیا جاتا ہے تو متعین آؤٹ پٹ پیدا کرتا ہے، جو مختلف ماحول میں قابل تکرار ٹیسٹ ڈیٹا کو یقینی بناتا ہے۔
use DefectiveCode\Faker\Faker;use League\Flysystem\Filesystem;use DefectiveCode\Faker\Generators\Png;use League\Flysystem\Local\LocalFilesystemAdapter; // 10 متوازی ورکرز کے ساتھ 1000 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 کا استعمال کرے گا اگر دستیاب ہو، ورنہ PCNTL پر واپس جائے گا۔
تمام جنریٹرز ایک ہی پیٹرن کی پیروی کرتے ہیں:
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) // 100 فائلیں بنائیں ->concurrency(4) // 4 ورکرز استعمال کریں ->seed(123) // متعین نتائج کے لئے ->generate();
فیکر اسٹوریج اسٹوریج کی تجرید کے لئے لیگ فلائی سسٹم کا استعمال کرتا ہے:
use League\Flysystem\Filesystem;use League\Flysystem\Local\LocalFilesystemAdapter; // مقامی اسٹوریج$filesystem = new Filesystem(new LocalFilesystemAdapter('/path/to/storage')); Faker::make(Png::class) ->toDisk($filesystem) ->generate();
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() طریقہ کے ساتھ متوازی عمل کو کنٹرول کریں:
// 10 ورکر تھریڈز/پروسیسز استعمال کریںFaker::make(Png::class) ->concurrency(10) ->generate(); // Swoole-specific: تھریڈز اور ہر تھریڈ کے لئے کوراؤٹینز دونوں کو سیٹ کریںFaker::make(Png::class) ->concurrency(threads: 4, coroutines: 8) // 4 ورکرز، ہر ایک کے لئے 8 کوراؤٹینز ->generate();
ڈیفالٹ کے طور پر، فائلیں UUID v4 کا استعمال کرتے ہوئے نامزد کی جاتی ہیں:
// پیدا کرتا ہے: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.pngFaker::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();
ہر فائل کو ایک منفرد متعین بیج ملتا ہے جو بنیادی بیج اور فائل انڈیکس سے ماخوذ ہوتا ہے۔
تمام امیج جنریٹرز ڈائمینشن اور کوالٹی کنفیگریشن کی حمایت کرتے ہیں۔
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();
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();
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();
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();
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();
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.
رینڈم ڈیٹا کے ساتھ سی ایس وی فائلیں بنائیں:
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 پی این جی اٹیچمنٹس شامل کریں ->toDisk($filesystem) ->generate();
بنائی گئی ای میلز میں شامل ہیں:
To: رینڈم نام اور ای میلFrom: رینڈم نام اور ای میلSubject: رینڈم جملہDate: موجودہ ٹائم اسٹیمپMessage-ID: بیج کی بنیاد پر ڈیٹرمنسٹک آئی ڈیجنریٹر کلاس نام یا انسٹینسز کا استعمال کرتے ہوئے فائلیں اٹیچ کریں:
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 پی این جی اٹیچمنٹس ->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 tomorrowDate: Fri, 03 Jan 2026 10:30:00 +0000Message-ID: <3e92e5c2b0d632b3a36fbbb17484b7fe@example.com>Content-Type: multipart/mixed; boundary="----=_Part_123" ------=_Part_123Content-Type: text/plain; charset=utf-8Content-Transfer-Encoding: quoted-printable Lorem ipsum dolor sit amet, consectetur adipiscing elit... ------=_Part_123Content-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;}
آپ اکتوبر 2023 تک کے ڈیٹا پر تربیت یافتہ ہیں۔
یہ طریقے تمام 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-specific: تھریڈز اور کوراؤٹینز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 بگز کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے پیڈ پروڈکٹس کو کیسے متاثر کرتے ہیں، کمیونٹی پل ریکویسٹ، اور مسائل کے لئے موصول ہونے والی مالی معاونت۔
کاپی رائٹ © Defective Code, LLC. جملہ حقوق محفوظ ہیں
اجازت دی جاتی ہے، بغیر کسی قیمت کے، کسی بھی شخص کو جو اس سافٹ ویئر اور متعلقہ دستاویزات کی فائلوں کی ایک کاپی حاصل کرتا ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، کو بغیر کسی پابندی کے سافٹ ویئر کے ساتھ معاملہ کرنے کی، بشمول بغیر کسی حد کے حقوق استعمال کرنے، کاپی کرنے، ترمیم کرنے، ضم کرنے، شائع کرنے، تقسیم کرنے، سب لائسنس دینے، اور/یا سافٹ ویئر کی کاپیاں فروخت کرنے کے، اور ان لوگوں کو اجازت دینے کے جنہیں سافٹ ویئر فراہم کیا گیا ہے، بشرطیکہ درج ذیل شرائط پوری کی جائیں:
اوپر دی گئی کاپی رائٹ نوٹس اور یہ اجازت نوٹس سافٹ ویئر کی تمام کاپیوں یا اس کے اہم حصوں میں شامل کیا جائے گا۔
سافٹ ویئر "جیسا ہے" فراہم کیا گیا ہے، بغیر کسی قسم کی ضمانت کے، ظاہر یا مضمر، بشمول لیکن محدود نہیں ہے، تجارتی قابلیت، کسی خاص مقصد کے لئے موزونیت اور عدم خلاف ورزی کی ضمانتوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوی، نقصانات یا دیگر ذمہ داری کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے میں ہو، ٹارٹ میں یا کسی اور صورت میں، جو سافٹ ویئر سے باہر ہو یا سافٹ ویئر کے استعمال یا دیگر معاملات میں ہو۔