English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Hati hii imetafsiriwa kiotomatiki. Ikiwa kuna makosa ya tafsiri tafadhali fungua
a pull request kwenye
mradi na ongeza faili iliyotafsiriwa kwa docs/{ISO 639-1 Code}.md.
Umefundishwa kwa data hadi Oktoba 2023.
Faker Storage ni kifurushi cha PHP chenye utendaji wa juu kilichoundwa ili kuzalisha na kuhifadhi idadi kubwa ya faili za data bandia kwa ufanisi. Kikiwa kimejengwa kwa kuzingatia ushirikiano, kinatumia Swoole au PCNTL kuzalisha maelfu ya faili kwa wakati mmoja, na kukifanya kuwa bora kwa majaribio ya mzigo, mazingira ya maendeleo, na upimaji wa mifumo ya uhifadhi.
Kifurushi hiki kinatoa API yenye mtiririko kwa ajili ya kuzalisha aina mbalimbali za faili ikiwa ni pamoja na picha (PNG, JPG, GIF, BMP, WEBP, AVIF), faili za maandishi, faili za CSV, data ya binary, na barua pepe zinazokubaliana na RFC822. Kila kizalishaji hutoa matokeo yanayoweza kutabirika wakati wa kupandikizwa, kuhakikisha data ya majaribio inayoweza kurudiwa katika mazingira mbalimbali.
use DefectiveCode\Faker\Faker;use League\Flysystem\Filesystem;use DefectiveCode\Faker\Generators\Png;use League\Flysystem\Local\LocalFilesystemAdapter; // Zalisha picha 1000 za PNG na wafanyakazi 10 kwa wakati mmojaFaker::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(); // Zalisha faili za CSVuse 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(); // Zalisha barua pepe zenye viambatishouse 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();
Sakinisha kifurushi kupitia Composer:
composer require defectivecode/faker-storage
Kwa utendaji bora, sakinisha kiendelezi cha Swoole:
pecl install swoole
Kifurushi kitautumia Swoole kiotomatiki ikiwa kinapatikana, na kurudi kwa PCNTL vinginevyo.
Vijenereta vyote hufuata mtindo sawa:
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) // Usanidi maalum wa jenereta ->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage'))) ->basePath('documents') // Faili zitakuwa katika /storage/documents/ ->count(100) // Tengeneza faili 100 ->concurrency(4) // Tumia wafanyakazi 4 ->seed(123) // Kwa matokeo yanayoweza kutabirika ->generate();
Hifadhi ya Faker hutumia League Flysystem kwa upatanishi wa hifadhi:
use League\Flysystem\Filesystem;use League\Flysystem\Local\LocalFilesystemAdapter; // Hifadhi ya ndani$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();
Pitisha chaguo za ziada kwa adapta ya mfumo wa faili:
Faker::make(Png::class) ->toDisk($filesystem) ->diskOptions([ 'visibility' => 'public', 'ACL' => 'public-read', 'CacheControl' => 'max-age=31536000', ]) ->generate();
Dhibiti utekelezaji sambamba na njia ya concurrency():
// Tumia nyuzi/mchakato 10 za wafanyakaziFaker::make(Png::class) ->concurrency(10) ->generate(); // Maalum kwa Swoole: Weka nyuzi na coroutines kwa kila nyuziFaker::make(Png::class) ->concurrency(threads: 4, coroutines: 8) // Wafanyakazi 4, coroutines 8 kila mmoja ->generate();
Kwa kawaida, faili hupewa majina kwa kutumia UUID v4:
// Inazalisha: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.pngFaker::make(Png::class)->generate();
use DefectiveCode\Faker\NameGenerator; // Kulingana na UUID (chaguo-msingi)NameGenerator::setDefault('uuid'); // Inazalisha: e7f0a8d3-5c2b-4f9e-8a1d-3b4c5d6e7f8a.png // Uorodheshaji wa mfululizoNameGenerator::setDefault('sequence'); // Inazalisha: 1.png, 2.png, 3.png, ...
Toa kufungwa ili kubinafsisha majina ya faili:
use DefectiveCode\Faker\NameGenerator; // Kufungwa kwa kawaidaFaker::make(Png::class) ->nameGenerator(function (int $seed, int $completedFiles, $generator) { return "custom-{$completedFiles}-{$seed}.png"; }) ->generate(); // Uwekaji jina kwa msingi wa tareheFaker::make(Png::class) ->nameGenerator(function (int $seed, int $completedFiles, $generator) { return date('Y/m/d') . "/image-{$completedFiles}.png"; }) ->generate();
Weka mbegu ili kuzalisha faili sawa katika mizunguko:
Faker::make(Png::class) ->seed(42) ->count(10) ->generate();
Kila faili hupata mbegu ya kipekee inayotokana na mbegu ya msingi na faharasa ya faili.
Jenereta zote za picha zinaunga mkono usanidi wa vipimo na ubora.
use DefectiveCode\Faker\Generators\Png; Faker::make(Png::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->withAlpha(true) // Wezesha kituo cha alpha/uwazi ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Jpg; Faker::make(Jpg::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Gif; Faker::make(Gif::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->withAlpha(true) // Wezesha kituo cha alpha/uwazi ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Bmp; Faker::make(Bmp::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Webp; Faker::make(Webp::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->withAlpha(true) // Wezesha kituo cha alpha/uwazi ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
use DefectiveCode\Faker\Generators\Avif; Faker::make(Avif::class) ->width(800, 1920) // Upana wa nasibu kati ya 800-1920px ->height(600, 1080) // Urefu wa nasibu kati ya 600-1080px ->withAlpha(true) // Wezesha kituo cha alpha/uwazi ->grid(5) // Hiari: Tengeneza muundo wa 5x5 wa usawa ->toDisk($filesystem) ->generate();
Inazalisha muundo wa picha wa nasibu:
use DefectiveCode\Faker\Generators\RandomImage; Faker::make(RandomImage::class) ->width(800, 1920) ->height(600, 1080) ->withAlpha(false) // Nasibu kutoka: AVIF, BMP, GIF, JPEG, PNG, WEBP ->toDisk($filesystem) ->generate(); Faker::make(RandomImage::class) ->width(800, 1920) ->height(600, 1080) ->withAlpha(true) // Nasibu kutoka: AVIF, GIF, PNG, WEBP ->toDisk($filesystem) ->generate();
Zalisha faili za maandishi wazi na aya:
use DefectiveCode\Faker\Generators\Text; Faker::make(Text::class) ->paragraphs(5, 10) // Aya 5-10 kwa kila faili ->sentences(3, 6) // Sentensi 3-6 kwa kila aya ->toDisk($filesystem) ->generate();
Mfano wa Matokeo:
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.
Zalisha faili za CSV na data ya nasibu:
use DefectiveCode\Faker\Generators\Csv; Faker::make(Csv::class) ->columns(5, 10) // Safu 5-10 ->rows(100, 500) // Mistari 100-500 ->delimiter(',') // Kitenganishi cha safu ->enclosure('"') // Ufungaji wa uwanja ->escape('\\') // Tabia ya kuepuka ->eol("\n") // Mwisho wa mstari ->toDisk($filesystem) ->generate();
Mfano wa Matokeo:
"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"
Zalisha data ya binary ya nasibu:
use DefectiveCode\Faker\Generators\Binary; Faker::make(Binary::class) ->length(1024, 1048576) // 1KB - 1MB ->toDisk($filesystem) ->generate();
Zalisha faili za barua pepe zinazokubaliana na RFC822:
use DefectiveCode\Faker\Generators\Email; Faker::make(Email::class) ->paragraphs(3, 5) // Aya katika mwili wa barua pepe ->sentences(2, 4) // Sentensi kwa kila aya ->withAttachment(Png::class, 1, 3) // Ongeza viambatisho 1-3 vya PNG ->toDisk($filesystem) ->generate();
Barua pepe zinazozalishwa zinajumuisha:
To: Jina na barua pepe ya nasibuFrom: Jina na barua pepe ya nasibuSubject: Sentensi ya nasibuDate: Muda wa sasaMessage-ID: Kitambulisho cha kidhahania kulingana na mbeguAmbatisha faili kwa kutumia majina ya darasa la jenereta au matukio:
use DefectiveCode\Faker\Generators\Email;use DefectiveCode\Faker\Generators\Png;use DefectiveCode\Faker\Generators\Pdf; Faker::make(Email::class) ->withAttachment(Png::class, 1, 3) // Viambatisho 1-3 vya PNG ->generate(); // Ambatisha kwa kutumia mfano wa jenereta uliosanidiwa$pngGenerator = new Png(Png::getDefaultConfig());$pngGenerator->width(400, 800)->height(300, 600); Faker::make(Email::class) ->withAttachment($pngGenerator, 2, 5) ->generate();
Mfano wa Matokeo:
To: John Doe <john.doe@example.com>From: Jane Smith <jane.smith@example.com>Subject: Mkutano muhimu keshoDate: 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--
Tengeneza jenereta zako mwenyewe kwa kutekeleza kiolesura cha 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 { // Mantiki yako ya kizazi hapa $data = $this->faker->randomElement(['foo', 'bar', 'baz']); $stream = fopen('php://temp', 'w+'); fwrite($stream, $data); return $stream; }} // Tumia jenereta yako maalumFaker::make(MyCustomGenerator::class) ->toDisk($filesystem) ->generate();
Kila jenereta hutumia darasa la usanidi linalopanua Config:
use DefectiveCode\Faker\Configs\Config; class MyCustomConfig extends Config{ public int $minValue = 1; public int $maxValue = 100;}
Mbinu hizi zinapatikana kwenye matukio yote ya Faker:
make(string $generator): FakerUnda tukio jipya la Faker na jenereta maalum:
Faker::make(Png::class)
toDisk(Filesystem $filesystem): FakerWeka marudio ya kuhifadhi (inayohitajika):
Faker::make(Png::class) ->toDisk(new Filesystem(new LocalFilesystemAdapter('/storage')))
basePath(string $basePath): FakerWeka njia ya msingi ndani ya mfumo wa faili:
Faker::make(Png::class) ->basePath('images/uploads') // Faili zimehifadhiwa katika /storage/images/uploads/
count(int $count): FakerWeka idadi ya faili za kuzalisha:
Faker::make(Png::class) ->count(1000)
concurrency(int $threads, ?int $coroutines = null): FakerSanidi utekelezaji wa sambamba:
// Sambamba ya msingiFaker::make(Png::class) ->concurrency(4) // Swoole maalum: nyuzi na coroutinesFaker::make(Png::class) ->concurrency(threads: 4, coroutines: 8)
seed(int $seed): FakerWeka mbegu kwa kizazi cha uhakika:
Faker::make(Png::class) ->seed(42)
nameGenerator(Closure $generator): FakerBadilisha majina ya faili:
Faker::make(Png::class) ->nameGenerator(function (int $seed, int $completedFiles, $generator) { return "file-{$completedFiles}.png"; })
diskOptions(array $diskOptions): FakerPitisha chaguo kwa adapta ya mfumo wa faili:
Faker::make(Png::class) ->diskOptions([ 'visibility' => 'public', 'ACL' => 'public-read', ])
generate(): voidTekeleza kizazi cha faili:
Faker::make(Png::class)->generate();
Asante kwa kuchagua kifurushi chetu cha chanzo huria! Tafadhali chukua muda kuangalia miongozo hii ya usaidizi. Itakusaidia kupata zaidi kutoka kwa mradi wetu.
Mradi wetu wa chanzo huria unachochewa na jamii yetu ya ajabu. Ikiwa una maswali au unahitaji msaada, StackOverflow na rasilimali zingine za mtandaoni ni chaguo bora zaidi.
Ukweli wa kusimamia mradi wa chanzo huria unamaanisha hatuwezi kushughulikia kila hitilafu iliyoripotiwa au ombi la kipengele mara moja. Tunapa kipaumbele masuala kwa mpangilio ufuatao:
Hitilafu zinazoathiri bidhaa zetu za malipo zitakuwa kipaumbele chetu cha juu kila wakati. Katika baadhi ya matukio, tunaweza kushughulikia tu hitilafu zinazotuathiri moja kwa moja.
Ikiwa umebaini hitilafu na una suluhisho, tafadhali wasilisha ombi la kuvuta. Baada ya masuala yanayoathiri bidhaa zetu, tunatoa kipaumbele cha juu kwa marekebisho haya yanayotokana na jamii. Baada ya kukaguliwa na kuidhinishwa, tutaunganisha suluhisho lako na kukupa sifa kwa mchango wako.
Kwa masuala nje ya makundi yaliyotajwa, unaweza kuchagua kufadhili utatuzi wake. Kila suala lililofunguliwa limeunganishwa na fomu ya agizo ambapo unaweza kuchangia kifedha. Tunapa kipaumbele masuala haya kulingana na kiasi cha ufadhili kilichotolewa.
Chanzo huria hustawi wakati jamii yake inafanya kazi. Hata kama hurekebishi hitilafu, fikiria kuchangia kupitia maboresho ya msimbo, masasisho ya nyaraka, mafunzo, au kwa kusaidia wengine katika njia za jamii. Tunahimiza sana kila mtu, kama jamii, kusaidia kazi ya chanzo huria.
Kurudia, DefectiveCode itapa kipaumbele hitilafu kulingana na jinsi zinavyoathiri bidhaa zetu za malipo, maombi ya kuvuta ya jamii, na usaidizi wa kifedha uliopokelewa kwa masuala.
Haki miliki © Defective Code, LLC. Haki zote zimehifadhiwa
Ruhusa inatolewa, bila malipo, kwa mtu yeyote anayepata nakala ya programu hii na faili za nyaraka zinazohusiana (hapa "Programu"), kushughulika na Programu bila kizuizi, ikiwa ni pamoja na bila kikomo haki za kutumia, kunakili, kurekebisha, kuunganisha, kuchapisha, kusambaza, kutoa leseni ndogo, na/au kuuza nakala za Programu, na kuruhusu watu ambao Programu inatolewa kwao kufanya hivyo, kwa masharti yafuatayo:
Ilani ya haki miliki hapo juu na ruhusa hii itajumuishwa katika nakala zote au sehemu kubwa za Programu.
PROGRAMU INATOLEWA "KAMA ILIVYO", BILA DHAMANA YA AINA YOYOTE, IKIWA IMEELEZWA AU KUDOKEZWA, IKIWA NI PAMOJA NA LAKINI SI KIKOMO KWA DHAMANA ZA KUUZIKA, USTAHIKI KWA KUSUDI MAALUM NA KUTOKUKIUKA. KWA HALI YOYOTE WAANDISHI AU WENYE HAKI MILIKI HAWATAWAJIBIKA KWA DAI LOLOTE, UHARIBIFU AU DHIMA NYINGINE, IKIWA KATIKA MKATABA, KOSA AU VINGINEVYO, INAYOTOKEA KUTOKANA NA, NJE YA AU KATIKA UHUSIANO NA PROGRAMU AU MATUMIZI AU MAMBO MENGINE KATIKA PROGRAMU.