, grundlaget for at skabe laravel bundter,,,,, andel,,,,,,,, 29,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, laravel php rammer tilbyder sine bundter system med mulighed for at omfordele nyttige pakker af kode udviklere, eller at organisere ansøgninger i flere "pakker" af mindre ansøgninger, i denne forelæsning, vil vi lære knebene at distribuere bundter fra bunden.,, en laravel bundt har adgang til alle de karakteristika, der rammer tilbyder sin vært anvendelse, herunder routing, migration, test, synspunkter og mange andre nyttige elementer.og her er en hemmelighed mellem os: den anvendelse, folder i laravel kilde - pakken er også en pakke, som laravel henviser til som den, default_bundle,.,,,, ved at skabe et bundt?,, før at skrive en ny kodeks, vil jeg gerne spørge mig selv et par spørgsmål for at afgøre, om det er passende for en formue.lad mig dele denne teknik med dig, kunne denne kode bruges til andre?,, hvis svaret er ja, så først vil jeg sørge for, at nogen ikke har allerede skabt en lignende pakke eller pakke.andre end i uddannelsesøjemed, det er formålsløst at genskabe rattet.hvis den anden pakke er af en tilstrækkelig høj standard, der skal anvendes i deres projekt, så brug det i stedet, og spar dig selv for tiden. og for det andet, tror jeg, om koden og beslutte, hvorvidt det ville være hensigtsmæssigt at brugere af andre rammebestemmelser eller folk med en ramme på alle.hvis koden ikke er forretningsmæssigt forbundet med de laravel rammer og ikke behøver at gøre brug af laravel kerne klasser, så jeg ville skabe en komponist - pakken i stedet.komponist pakker er meget bliver standard for udveksling af kode, der ikke er begrænset til en enkelt ramme eller projekt. for mere information om komponist, henviser til følgende forbindelser:,,, officielle dokumentation, let pakke forvaltning med komponist, hvis koden kan være nyttige for andre, og er afhængig af den laravel ramme så du har en god grund til at skabe et nyt bundt.,, bliver jeg nødt til at skrive denne kode igen?,,, tør er navnet på spillet.,,, hvis koden angiver funktionalitet, at du skriver ofte, så det giver mening at skabe en formue.tør (ikke gentager sig selv.er navnet på spillet.,, kan betragtes som en selvstændig anvendelse af denne kodeks?, f.eks. du kan bygge et enkelt websted, der blandt andre elementer, har en blog komponent.bloggen kan betragtes som en særskilt ansøgning skal være indeholdt i et bundt af langt større organisation af dit projekt. et andet eksempel er en administrativ afdeling, eller "back - end - - for din hjemmeside.denne afdeling kan let blive betragtet som en særskilt bestanddel fra den primære anvendelse, og i stedet kunne organiseres i en eller flere bundter.,, ville denne kode ind i en enkelt klasse?og, hvis det er tilfældet, kan man overveje at skrive et "bibliotek" i stedet for.biblioteket er en enkelt gruppe, der indeholder genanvendelige kode.det kan tilføjes, at en laravel projekt let ved at droppe klasse i, anvendelse /arkiver /, fortegnelse, som er en rig ved misligholdelse.,,, at skabe et bundt, lad os skabe en enkelt stik, der samarbejder med den gravatar tjeneste for at give en enkel metode til at skabe job i forskellige størrelser inden for vores vigtigste anvendelse.vi vil også tilføje de nødvendige funktioner i en e - mail adresse og avatar størrelse, og de associerede gravatar forpremiere på side. lad os komme i gang med at skabe en ny fortegnelse i, /bundter, fortegnelse over vores projekt.vi ringer til registret og vores pakke, gravvy,.ikke sovs...gravvy.,, så lad os tilføje gravvy til bundter system i anvendelse /bundles.php, så vi kan teste den, så går vi sammen.vi vil tilføje,'auto = > sandt, mulighed for at fremme, så pakken vil blive automatisk i gang, og autoloader kortlægninger, vi skaber, vil være tilgængelige for hele laravel.,, afkast system (') = > system ('handles = >') «.), gravvy = > system (auto = > sande), først skal vi skabe en lille bibliotek, der vil finde en brugers avatar, ved hjælp af en e - mail - adresse.skabe et nyt dossier inden for den grundlæggende af den pakke, der hedder, gravvy. folkesundhedsprogrammet.lad os skabe en klasse, der hedder, gravvy, med en statisk metode, make(),, at kopiere navngivning ordning, der anvendes af laravel egne biblioteker.,,, make(), metode vil acceptere to parametre: en e - mail adresse og et heltal, til at repræsentere den størrelse af avatar at hente.,, <?php /* * * klasse for at skabe gravatar image elementer.* * @ forfatter, du < du @ dig. kom > * /klasse gravvy {/* * * skabe et nyt image element fra en e - mail - adresse.* @ param snor $e - mail - adresse.* @ param heltal $størrelse avataren størrelse.* @ tilbage snor kilde for et image element.* /offentlige statisk funktion gøre ($e - mail, $størrelse = 32) (//omdanne vores e - mail til en md 5 hash $e - mail = md 5 ($e - mail); //vende billedet element modydelse på < img src = "http://www.gravatar.com/avatar/. $e - mail."?s = ". $størrelse), masse rod telefonbøger ikke - lastet, så lad os skrive en kortlægning, således at laravel ved, hvor de kan finde den gravvy klasse, når det er nødvendigt.,, når de starter en pakke, laravel ser ud til en fil, der hedder, begynde på, og gennemfører. det.så lad os skabe inden for vores nye pakke er adresseregister for at holde vores auto belastning kortlægninger.,, <?php /////////pakker /gravvy /start.php autoload: kort (array ('gravvy = > vej ('bundles). /gravvy /gravvy. folkesundhedsprogrammet "), nu laravel vil ved at finde definitionen for vores, gravvy, klasse, og lad kilde, når for det første har brug for det.meget effektivt.,,, path(), metode er en hjælper, funktion, som vender tilbage til den absolutte vej til nyttige mapper, der anvendes af laravel.i dette tilfælde, vi bruger det til at hente den absolutte vej til bundter fortegnelse.,,, at vi har vores arbejde gravvy klasse, kan vi forsøge at bruge det i en kontrolenhed for at se, om vi får den forventede produktion, men jeg tror, at det ville være mere hensigtsmæssigt at skrive en enhed test. ligesom en ansøgning, enhed prøver er tilgængelige fra det bundt.lad os skabe en test, folder i bundter og tilføje en ny sag, kaldet, general. test. php,.,, <?php klasse testgeneral udvider phpunit_framework_testcase {/* * * prøve, at en avatar output er som forventet.* * @ tilbage ugyldige * /offentlige funktion testavatarimageisgenerated() (//start gravvy pakke bundle: start ('gravvy); //kontrollere, at produktionen svarer til den forventede $- > assertequals (gravvy: gøre ('thepunkfan @ gmail. com ")," < img src = "http://www.gravatar.com/avatar/fac3a58aaa455adbcb3f684ccff663b8?s = 32 "/> ');} /* * * prøve, at en avatar produktionen fremstår som forventet, da * angiver en skik avatar størrelse.* * @ tilbage ugyldige * /offentlige funktion testavatarimageisgeneratedwithsize() (//start gravvy pakke bundle: start ('gravvy); //kontrollere, at produktionen svarer til den forventede $- > assertequals (gravvy: gøre ('thepunkfan @ gmail. kom, 64), < img src = "http://www.gravatar.com/avatar/fac3a58aaa455adbcb3f684ccff663b8?n = 64 "/> ')), ovenfor, vi har skrevet to phpunit prøver: en prøvning af produktionen for at skabe en avatar, ved hjælp af en e - mail, og en anden, der også indeholder en avatar størrelse i antal pixels.de vil bemærke, at vi kalder, bundt: start ('gravvy "), at manuelt starte bundt.det er, fordi laravel ikke automatiske belastning bundter via kommandolinjen grænseflade på nuværende tidspunkt., som et centralt medlem af holdet, vil jeg gerne påpege, at vi har til hensigt at løse dette i en kommende udgave.,,, lad os bruge svend køre vores phpunit test ved maskinskrivning, test - og ved hjælp af bundt navn, gravvy, som parameter.,, folkesundhedsprogrammet håndværker test gravvy, fantastisk!vores analyser har kørt med succes på den første prøve, og vores ego har vokset - bare lidt.,,, nu hvor vores gravvy klasse er blevet testet, folk kan bruge den i deres ansøgninger.lad os tage den pakke et skridt videre og skabe et par enkle sider til at generere og forpremiere gravatars.vi kan bruge dette eksempel for at lære at dirigere systemet behandler bundter.,, at begynde, lad os skabe en ny "forpremiere" registeransvarlige for vores bundt.vi skal skabe et, flyveledere, fortegnelse i den pakke, og inden for det, vil vi tilføje en ny fil:, forpremiere. php,.,, <?php klasse gravvy_preview_controller udvider registeransvarlige {/* * * vise forpremiere avatar form.* /offentlige funktion action_form() (//belastning form for afkast på:: ('gravvy: form ');} /* * * viser som avatar.* /offentlige funktion action_preview() (//belastning forvisningen opfattelse tilbage synspunkt:: ('gravvy: preview)), og den registeransvarlige navn skal være indledt med bundter navn, og er knyttet til, _controller, - som med normal flyveledere.,, kunne vi skabe nogle ruter til kort de registeransvarlige aktioner en fornuftig uri 'er, men ville det ikke være bedre, hvis vi kunne lade brugeren af vores bundt beslutte på basen uri brug?det ville?så gør vi det!, ved at tilføje en,'handles = > gravvy, afgørende værdi par til bundter konfiguration system, vi kan gøre det muligt for brugeren at ændre det uden at ændre koden for den pakke af sig selv.her er den resulterende konfiguration, anvendelse /bundter. php,.,, returnerer system (') = > system ('handles = >') '), gravvy = > system (auto = > sandt, håndtag = > "gravvy"), og nu kan vi bruge (masse), indehaver i vores ruter, som vil blive erstattet med værdien af det, håndtag, mulighed.lad os skabe en, routes.php, fil i roden til vores bundter og tilføje nogle ruter.,, rute: kom ("(bundle) /form, gravvy: forpremiere @ form ') vej: post (" (bundle) /forpremiere "," gravvy: se @ forpremiere "), har vi den vej, får gravvy /form, som er planlagt til den form, aktion i, forpremiere for registeransvarlige, og efter gravvy /premiere, der er planlagt til, forpremiere for handling af den registeransvarlige, forpremiere.,, lad os skabe de associerede synspunkter for vores registeransvarlige aktioner, kan du gøre dem så komplekse og meget, du vil, men jeg vil holde det simpelt.første, skabe, synspunkter, folder i den pakke, som ansøgningen fortegnelse.,, <!-- /bundles/gravvy/views/form.blade.php --> <form action="{{ URL::to_action('gravvy::preview@preview') }}" method="POST"> <p><label for="name">Email Address:</label></p> <p><input type="text" name="email" /></p> <p><label for="name">Avatar Size:</label></p> <p><input type="text" name="size" /></p> <p><input type="submit" value="Preview!" /> < /p > < /form >, nu, hvor vi har en form, som vil forelægge en e - mail og størrelse inden for, forpremiere @ forpremiere registeransvarlige /aktion par, lad os skabe en forsmag side for de genererede avatar. vi vil bruge en attribut ved navn, $element, for at holde sin kilde.,, <!- /pakker /gravvy /synspunkter /preview.blade.php - > < p > {{$element) < /p > < p > {{html: link. _to. _action ('gravvy: forpremiere @ form "," < gå tilbage! ")}} < /p >,, nu må vi ændre den trailer, foranstaltninger til at gøre brug af oplysningerne fra form.,, /* * * viser som avatar.* /offentlige funktion action_preview() (//få data fra vores form $e - mail = input: kom ('email) $størrelse = input: kom ('size); //skabe avataren $avatar = gravvy: gøre ($e - mail, $størrelse); //belastning forvisningen opfattelse vende tilbage baggrund: gøre ('gravvy: forpremiere ") - > med ('element, $avatar)}, vi henter post - data og bruge det til at skabe vores avatar.vi må også tilføje, with(), metode til, at: make(), kæde, give mulighed for at dele kan anvendes inden for den holdning,.,, så vi endelig kan teste vores avatar previewing system.tag et kig på det, gravvy /form, uri og give det en chance.alt fungerer som forventet.,,, det er måske ikke den bedste måde at organisere deres formue, men det vil fremhæve nogle af de ting, der er mulige.have det sjovt at skabe dit eget bundter, og sørg for at overveje at offentliggøre dem i bundter websted.,,, at offentliggøre et bundt, når din pakke er en velfungerende stat, vil du måske overveje opførelse på listen i laravel bundter fortegnelse.lad os løbe gennem processen med at indgive et nyt bundt, først skal du have en github højde, og din formue versioned i et offentligt register.github tilbyder gratis konti i et ubegrænset antal offentlige samlinger; de vil finde deres skilt form her.,, hvis du er ny udgave kontrol med torsk, foreslår jeg at læse den store række videre artikel her på nettuts +.,, når du har din højde og kode for at sikre, at de seneste version af din formue, kan findes i "mester" filial, og at årsagen til din formue (hvor, start.php, ville være) er roden til det register, snarere end en subdirectory.,, næste besøg laravel bundter adresseregister websted, og tegn på at bruge din github akkreditiver.,,, nu klik "forelægge et bundt" knappen, vælg en bundt register fra ned menu og ramte fortsat "knappen.,, skiltet op former helt ligetil, men her er nogle "gotchas", som du måske ikke stedet.,,,,,,,,,,, navnet er de små nøgleord, der er anvendt til at installere deres ansøgning.det skal være en kort, men præcis ord til at beskrive din formue.,,,, resumé /beskrivelse,,,,, at disse områder kan indeholde nedskrives format indhold.så føl dig fri til at kopiere indholdet af deres github, readme.md, fil.,,,, afhængighed /mærkater,,,, anvende komma knap på dit tastatur til særskilte mærker og tilhørende områder.de tilhørende område bør indeholde kort installere nøgleord for pakken, der findes som en afhængighed for pakken, de fremsætter.,,,, aktiv,,,,,,,, aktiv, område blot fastslår, hvorvidt den vil blive udvist til andre brugere.du er stadig i stand til at installere inaktive bundter af deres installere nøgleord for afprøvning.dette område, ja, kun når du er glad for andre mennesker til at bruge din formue.,, når du klik på "red" knappen, din pakke er blevet fremlagt, og hvis mærket som "aktive", skal anføres i bundter på listerne.du kan altid ændre din pakke notering på et senere tidspunkt,.,,, at finde bundter, pakker, der er blevet delt med laravel fællesskab er opført i bundter fortegnelse på http: //bundter. laravel. kom. du kan surfe bundter af kategori eller søgning ved at finde den pakke du leder efter.når du har fundet en pakke, som opfylder deres krav, tage et kig på de anlæg, tab af pakken er profil for at finde de installere nøgleord.,,, at installere et bundt,, når du har den installere nøgleord for et bundt, kan du sætte den på grundlag af deres projekt ved hjælp af 'håndværker "kommando linjen grænseflade, og det er et bundt: installere, kommando.for eksempel... under folkesundhedsprogrammet håndværker bundt: installation af bob, svend vil høre bundter api til at finde vej til bundter github register og repositorier af alle sine besiddelser.det vil så downloade kilde - pakkerne direkte fra github, og få dem til, /bundter, adresseregister for dig, skal du manuelt tilføje bundt navn til system i anvendelse /bundles.php, for den bliver aktiveret.,, returnerer system (') = > system ('handles = >') '), "bob"), i visse situationer, har du måske brug for at tilføje yderligere oplysninger til dette system, adgang til at lette auto begynder, eller gennemførelsen af visse ruter til bundt.forfatteren vil have ydet disse supplerende oplysninger i bundter beskrivelse, hvis det er tilfældet,.,,, tak for læse - og nyder at skabe dit eget bundter med laravel!hvis du vil lære mere om laravel, sørg for at hente min bog!,
det væsentlige for at skabe laravel bundter
Previous:optimere magento i sky