AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial
SSH is sowieso wel handig, als je wat Artisan commando's wil draaien (migrations, seeds, cache clearen etc).expor schreef op woensdag 18 februari 2015 @ 12:53:
Klinkt logisch, maar vanuit git naar server moet toch via SSH (niet ondersteund bij Antagonist geloof ik)? Heb me nog niet zo verdiept in git maar wil er wel mee aan de slag. Ben wel bekend met bijv. SVN.
Ik gebruik Rocketeer meestal: http://rocketeer.autopergamene.eu/
Kan je verbinding laten maken via SSH met je server en dan een clone van je git repo maken in een nieuwe map, composer install draaien, eventueel migrations of andere scripts en als die klaar is, symlink overzetten naar nieuwe release. Zo ben je helemaal niet off-line en kan je oudere versies bewaren zodat je direct terug kan.
Ook kan je dan makkelijker folders sharen tussen releases, bijv. een upload folder die buiten de release map staat.
Oeh nice, die moet ik zeker even bookmarken!Barryvdh schreef op woensdag 18 februari 2015 @ 13:24:
[...]
SSH is sowieso wel handig, als je wat Artisan commando's wil draaien (migrations, seeds, cache clearen etc).
Ik gebruik Rocketeer meestal: http://rocketeer.autopergamene.eu/
Kan je verbinding laten maken via SSH met je server en dan een clone van je git repo maken in een nieuwe map, composer install draaien, eventueel migrations of andere scripts en als die klaar is, symlink overzetten naar nieuwe release. Zo ben je helemaal niet off-line en kan je oudere versies bewaren zodat je direct terug kan.
Ook kan je dan makkelijker folders sharen tussen releases, bijv. een upload folder die buiten de release map staat.
We maken voor huidige projecten (WordPress) gebruik van http://ftploy.com. Dat werkt prima hoor, maar migrate en dergelijke commands wil je toch wel gewoon op de server kunnen runnen natuurlijk.
Daar was ik al bang voor, Antagonist ondersteund helaas geen SSH... Zit dit jaar sowieso nog vast aan deze hoster dus dan moet ik 'handmatig' mijn repo via FTP kopieren...Barryvdh schreef op woensdag 18 februari 2015 @ 13:24:
[...]
SSH is sowieso wel handig, als je wat Artisan commando's wil draaien (migrations, seeds, cache clearen etc).
Ik gebruik Rocketeer meestal: http://rocketeer.autopergamene.eu/
Kan je verbinding laten maken via SSH met je server en dan een clone van je git repo maken in een nieuwe map, composer install draaien, eventueel migrations of andere scripts en als die klaar is, symlink overzetten naar nieuwe release. Zo ben je helemaal niet off-line en kan je oudere versies bewaren zodat je direct terug kan.
Ook kan je dan makkelijker folders sharen tussen releases, bijv. een upload folder die buiten de release map staat.
AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial
Probeer dan eens http://ftploy.com/! xdexpor schreef op woensdag 18 februari 2015 @ 13:45:
[...]
Daar was ik al bang voor, Antagonist ondersteund helaas geen SSH... Zit dit jaar sowieso nog vast aan deze hoster dus dan moet ik 'handmatig' mijn repo via FTP kopieren...
Sorry, overheen gelezen! Zoiets zoek ik inderdaad, dan hoef ik het zelf niet te doen, thanks!TheNephilim schreef op woensdag 18 februari 2015 @ 13:51:
[...]
Probeer dan eens http://ftploy.com/! xd
AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial
Nu heb ik het e.e.a. bij elkaar gezocht via Google om het werkend te krijgen, en wou het even met jullie delen. Vast en zeker dat dit niet de netste manier is, maar tips zijn natuurlijk welkom!
Als eerste: aan iedere AJAX call de token toevoegen. Hiervoor heb ik in een eigen js bestandje (wat ik verder ook ga gebruiken voor custom functies etc.) deze code gezet:
1
2
3
4
5
| $.ajaxSetup({ headers: { 'X-CSRF-Token': $('meta[name="_token"]').attr('content') } }); |
En de volgende HTML in m'n blade template:
1
| <meta name="_token" content="{{ csrf_token() }}" /> |
Aangezien de token nu niet herkend wordt, heb ik de tokensMatch functie aangepast van \vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php:
1
2
3
4
5
6
7
8
9
10
11
12
| protected function tokensMatch($request) { $token = $request->session()->token(); $header = $request->header('X-XSRF-TOKEN'); $csrftoken = $request->header('X-CSRF-Token'); if(Request::ajax()) return StringUtils::equals($token, $csrftoken); return StringUtils::equals($token, $request->input('_token')) || ($header && StringUtils::equals($token, $this->encrypter->decrypt($header))); } |
En om Request:: te kunnen gebruiken in hetzelfde bestand
1
| use Illuminate\Http\Request; |
1
| use Request; |
Works like a charm
Nee, Host > Homestead VM is wel genoeg dacht ik zo.
[ Voor 20% gewijzigd door ZpAz op 18-02-2015 21:20 ]
Je hebt toch wel een lokale CSRF middleware gemaakt, niet echt die in de vendor map staat aangepast?trix0r schreef op woensdag 18 februari 2015 @ 20:12:
Ik ben bezig om wat overzichtjes te maken, en in plaats van een edit pagina vond ik jEditable wel erg strak. Ben hier even mee gaan spelen... maar de CSRF bescherming van Laravel zat me echt dwars, en ik wou het eens oplossen zonder hem maar meteen uit te zetten. Als simpele hobbiest is dat meestal mijn oplossing.
[..]
Aangezien de token nu niet herkend wordt, heb ik de tokensMatch functie aangepast van \vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php:
[..]
En om Request:: te kunnen gebruiken in hetzelfde bestand
code:vervangen door
1 use Illuminate\Http\Request;code:
1 use Request;
Works like a charm
Wel toevallig, hier was ik laatst ook mee bezig. Vond het ook verwarrend dat het token ge-decrypt wordt in de middleware. Maar dat is dus omdat Angular het token uit een Cookie haalt (wat de middleware ook standaard toevoegt) en omdat alle cookies encrypted zijn, is de token dus ook encrypted. Met angular hoef je dus niet handmatig die token nog mee te geven. In principe zou je met javascript dus ook het cookie kunnen uitlezen, in plaats van de meta tag.
Andere oplossing is om de _token mee te geven in de input. Dat is wat ik gedaan had:
https://github.com/barryv...s/views/index.php#L23-L28
1
2
3
4
5
| $.ajaxSetup({ beforeSend: function(xhr, settings) { settings.data += "&_token=<?= csrf_token() ?>"; } }); |
Maar dat voelt niet echt lekker (en gaat natuurlijk alleen als je het javascript in php maakt). Beter zou dus eigenlijk zijn om dat cookie te gebruiken, dan hoef je ook de middleware niet aan te passen.
En in principe had je ook alleen het decrypten weg kunnen halen, en wel de XSRF header kunnen gebruiken:
1
2
3
4
5
6
7
| protected function tokensMatch($request) { $token = $request->session()->token(); $header = $request->header('X-XSRF-TOKEN'); return StringUtils::equals($token, $request->input('_token')) || ($header && StringUtils::equals($token, $header)); } |
Hiermee bedoel ik een package waar je het volgende mee kunt:
- pagina toevoegen
- pageblokken (tekst, image) aanmaken voor deze pagina
Momenteel heb ik een eigen systeempje opgezet, maar het is niet wat het moet zijn. Was van plan om dit even opnieuw te maken, maar vroeg me af of er eventueel al goed werkende packages bestaan voor Laravel.
RTFM!
Ik heb niet direct een heel cms nodig.Scr33x0r schreef op donderdag 19 februari 2015 @ 10:59:
Ik zou eens kijken naar October of BootstrapCMS.. beide op Laravel.. October volgens mij nog op L4
RTFM!
OctoberCMS is een vrij low level CMS, ik zou er eens naar kijken als ik jou was.
NeuhBarryvdh schreef op woensdag 18 februari 2015 @ 22:39:
[...]
Je hebt toch wel een lokale CSRF middleware gemaakt, niet echt die in de vendor map staat aangepast?
[...]
[ Voor 18% gewijzigd door Montaner op 20-02-2015 11:32 ]
Ik weet niet of je deze wijziging al in je app had zitten? https://github.com/larave...f52f1f89233f2a1d19011fc24trix0r schreef op vrijdag 20 februari 2015 @ 11:24:
[...]
Neuhhoe kan ik daarvoor specifiek een Middleware aanmaken die deze acties afhandelt? En wat is de bedoeling hier dan van? Het overschrijven/extenden van de huidige functie? Of een nieuwe functie om enkel deze ajax calls af te handelen?
Dan gebruik je in je Kernel dus 'App\Http\Middleware\VerifyCsrfToken', wat een lokale middleware is. Daar kan je dan je eigen tokensMatch functie implementeren.
Alles in de vendor map wordt overschreven bij een composer update.
Heb overigens wel een pull request aangemaakt, omdat ik het ook irritant vind
https://github.com/laravel/framework/pull/7528
Thanks voor de tip!Barryvdh schreef op vrijdag 20 februari 2015 @ 11:48:
[...]
Ik weet niet of je deze wijziging al in je app had zitten? https://github.com/larave...f52f1f89233f2a1d19011fc24
Dan gebruik je in je Kernel dus 'App\Http\Middleware\VerifyCsrfToken', wat een lokale middleware is. Daar kan je dan je eigen tokensMatch functie implementeren.
Alles in de vendor map wordt overschreven bij een composer update.
Heb overigens wel een pull request aangemaakt, omdat ik het ook irritant vind![]()
https://github.com/laravel/framework/pull/7528
Mijn App/Http/Middleware/VerifyCsrfToken.php nu:
1
|
Edit: laat maar
Nog een vraag wat betreft database/models. Dit is zijn even fictieve tabellen, maar de relaties dienen wel hetzelfde te zijn (een huis kan meerdere aansluitingen hebben):
Straat
straat_id
straat
Huis
huis_id
huisnummer
straat_id
Aansluiting
aansluiting_id
omschrijving
Huis_Aansluiting_rel
huis_id
aansluiting_id
Straat 1 op Veel Huis.
Huis Veel op Veel Aansluiting
Nu zal ik voor Straat, Huis en Aansluiting een model aanmaken. Maar doe ik dat ook voor huis_aansluiting_rel? Ik vind het niet 'mooi' staan, maar zie eigenlijk geen andere optie om die tabel fatsoenlijk bij te houden en de ORM te gebruiken.
[ Voor 73% gewijzigd door Montaner op 20-02-2015 22:38 ]
Nee, hier hoef je geen Model voor aan te maken. Als je netjes de naming conventions aanhoudt, regelt Laravel alles voor jetrix0r schreef op vrijdag 20 februari 2015 @ 21:33:
[...]
Nu zal ik voor Straat, Huis en Aansluiting een model aanmaken. Maar doe ik dat ook voor huis_aansluiting_rel? Ik vind het niet 'mooi' staan, maar zie eigenlijk geen andere optie om die tabel fatsoenlijk bij te houden en de ORM te gebruiken.
Dus model Huis met tabel huizen, model Aansluiting met tabel aansluitingen, koppeling in tabel aansluiting_huis met aansluiting_id en huis_id.
Die koppeltabel is geen model maar die geef je aan met een belongsToMany model. eventueel kan je extra informatie toevoegen aan die tabel met de pivot functie.
Als je veel met die tabel wil doen qua extra data enzo, kan je er eventueel wel een model van maken trouwens, maar meestal is dat niet nodig.
Voor de geïnteresseerden, ik heb de werking van CSRF beveiliging iets uitgebreider omschreven op mijn nieuw blog post: http://barryvdh.nl/larave...ion-in-laravel-explained/trix0r schreef op vrijdag 20 februari 2015 @ 21:33:
[...]
Thanks voor de tip!
Mijn App/Http/Middleware/VerifyCsrfToken.php nu:
PHP:
1
Edit: laat maarheb jouw commit gebruikt. Efficiëntste code en werkt perfect! Thanks again.
Bedankt!Barryvdh schreef op zaterdag 21 februari 2015 @ 16:46:
[...]
Voor de geïnteresseerden, ik heb de werking van CSRF beveiliging iets uitgebreider omschreven op mijn nieuw blog post: http://barryvdh.nl/larave...ion-in-laravel-explained/
RTFM!
Nu is mijn vraag zijn er nog package die handig zijn, of die het volgende wat makkelijker maken?
Ik ben een applicatie aan het bouwen die ook een api krijgt waar elke user meerdere api keys kan hebben.
Makkelijker een rechten systeem op zetten met rollen.
De volgende package ken ik al en heb al al in gebruik of getest.
barryvdh/laravel-ide-helper
barryvdh/laravel-debugbar
maatwebsite/excel
intervention/image
chumper/datatable
rcrowe/twigbridge Hoe gebruik je daar Request, daarmee check ik namelijk als een menu item actief is.
Als jullie nog andere tips hebben hoor ik dat ook graag.
Api: https://github.com/dingo/api
Beiden nog niet zelf gebruikt overigens.
Driving a cadillac in a fool's parade.
"If you see a light at the end of a wormhole, it's probably a photon torpedo!"
'/home' -> 'nl/home'.
Ik maak in de views de hrefs aan dmv url('....'). Hoe krijg ik het voor elkaar, met het oog op SEO, om deze URL's automatische locale mee te laten nemen?
Dus ipv http://www.tweakers.net/forum -> http://www.tweakers.net/nl/forum zonder redirect
EDIT:
Opgelost. Ik heb de helper functie gekopieerd en aangepast. Deze heb ik nu declared voordat Laravel bij zijn eigen helpers komt. Dit is 100% zeker niet de best practice, maar wel goed voor de hotfix
[ Voor 21% gewijzigd door Wkrooshof op 25-02-2015 11:35 ]
Ik ben ook net begonnen met Laravel5, en heb een vraagje.
Laracasts (fundamentals iig) laat wel zien hoe het werkt wanneer je een formulier hebt met een enkele tabel, maar hoe zit het wanneer je een formulier hebt die naar 2 database tabellen moet schijven?
1
2
| $foo = Foo::create($request->all()); $bar = Bar::create($request->all()): |
RTFM!
Nou, het is gewoon hetzelfde doen, maar dan twee keer ipv één keer. Dus met even nadenken zou je het zelf ook wel hebben kunnen bedenkenGlasya schreef op vrijdag 27 februari 2015 @ 13:05:
Ahh kijk, dat zijn nou de onwetenheidjes van mijn kant
Ik dacht dat er een make command was voor een viewcomposer, maar dat is dus niet het geval, waar kan ik een viewcomposer het beste plaatsen en waar laat ik Laravel weten dat hij bestaat?
Ik kan het uitleggen, maar niet half zo goed als Jeffrey en deze is volgens mij ook gratis te bekijken.kevinkrs schreef op vrijdag 27 februari 2015 @ 20:43:
Ik probeer een Viewcomposer te maken, omdat ik een stukje php logica heb en een stuk view die elke keer in de master view gerenderd moet worden.
Ik dacht dat er een make command was voor een viewcomposer, maar dat is dus niet het geval, waar kan ik een viewcomposer het beste plaatsen en waar laat ik Laravel weten dat hij bestaat?
https://laracasts.com/ser...-fundamentals/episodes/25 vanaf 9:25
Dit is wat je bedoelt toch?
Ja exact, ik moest wel een stukje overslaan waar hij het over de normale views heeft. Ik ben hem nog aan het bekijken maar ik krijg een idee hoe het werkt. Die Jeffrey kan het echt geweldig uitleggen, dankjewelDirkZzZ schreef op vrijdag 27 februari 2015 @ 20:50:
[...]
Ik kan het uitleggen, maar niet half zo goed als Jeffrey en deze is volgens mij ook gratis te bekijken.
https://laracasts.com/ser...-fundamentals/episodes/25 vanaf 9:25
Dit is wat je bedoelt toch?
[ Voor 99% gewijzigd door Firefly III op 20-06-2016 19:13 ]
Misschien dit boek eens lezen? https://leanpub.com/laravel-testing-decodedSlarioux schreef op vrijdag 27 februari 2015 @ 21:21:
Ik ben al een tijdje bezig met allerlei apps, maar ik blijf tegen het daadwerkelijke testen aanhikken.
- Individueel testen (phpunit) van elke controller method schiet niet op als je alles daarin moet mocken; dus dat doen we maar niet.
- Codeception schijnt superhandig te zijn maar ik krijg er geen handige, bruikbare tests uit.
- Behat & phpspec staan nog op mijn lijstje als todo.
Wat ik graag zou willen:
- Functioneel testen: Mijn app kan A, B en C. Dan moet ik A, B en C op de een of andere manier uitschrijven (login, vul form in, submit en kijk in DB of dat gelukt is). Ik vind codeception niet handig werken, maar als het moet dan moet het.
- Wat dieper functioneel testen. Gegeven een bepaalde set data wéét ik wat er in veldje X moet staan cq. wat er in de array moet staan. Maar om nou overal $I->see() te gaan zitten doen..
- Alles dat ik niet raak op deze manier (en toch niet weg kan) unit testen.
Zijn er voor Laravel 5 al wat duidelijke pointers? De documentatie van Laravel zelf (hoera er is phpunit) is ook niet duidelijk.
Staat ook in de docs toch? Gewoon een ServiceProvider maken. http://laravel.com/docs/5.0/views#view-composerskevinkrs schreef op vrijdag 27 februari 2015 @ 21:00:
[...]
Ja exact, ik moest wel een stukje overslaan waar hij het over de normale views heeft. Ik ben hem nog aan het bekijken maar ik krijg een idee hoe het werkt. Die Jeffrey kan het echt geweldig uitleggen, dankjewel
[ Voor 100% gewijzigd door Firefly III op 20-06-2016 19:13 ]
Geen idee of dat al je vragen beantwoord hoor, maar het gaat volgens mij redelijk diep in op testen in Laravel. Het is wel Laravel 4 maar principes zullen hetzelfde zijn.Slarioux schreef op zaterdag 28 februari 2015 @ 11:21:
Hah! Dat boek heb ik al
Toch weer eens uit de kast trekken maar
Ik dacht eigenlijk dat het makkelijk kon, ik vond het in de doc wat ingewikkelder uitgelegd. Komt misschien ook omdat ik nog niet heel veel ervaring met Laravel heb, nog maar iets langer dan een weekje mee bezigBarryvdh schreef op zaterdag 28 februari 2015 @ 10:07:
[...]
Misschien dit boek eens lezen? https://leanpub.com/laravel-testing-decoded
[...]
Staat ook in de docs toch? Gewoon een ServiceProvider maken. http://laravel.com/docs/5.0/views#view-composers
Tevens is het gelukt wat ik wilde. Ook kan ik deze package aanbevelen aan iedereen die bootstrap gebruikt.
https://github.com/vespakoen/menu
Als je een menu wil bouwen kun je de linkjes opgeven, vervolgens kijkt hij zelf of de pagina actief is en zet hij de active class goed. Scheelt je zelf heel veel gerommel
Bij deze: https://github.com/lavary/laravel-menu/
Kan dat wel, maar ik zit met een probleem. Ik heb een submenu, in dat submenu is 1 item actief (omdat je de pagina bezoekt)
Nu probeer ik zowel de actieve item een active class te geven als de parent (zodat het menu open blijft als je de pagina ververst)
Heeft iemand hier een oplossing voor? Of kan dit beter via jQuery opgelost worden?
Ik ben erg geintereseerd in leren gebruiken van laravel.
PHP ben ik een aardig eind opweg maar ik zou toch graag iemand hebben die me net ff een steuntje in de rug kan geven met het leren van laravel.
Dus als iemand zin heeft om een keertje mij wat bij te brengen over n skype call oid. Word dat zeer gewaardeerd.
Ik ken het basic MVC principe, en ik heb al wat tutorials geprobeert.
Hopelijk loopt deze goodboy rond op tweakers
Mvg,
Chiel
Klinkt goed. Alleen eigenlijk heb ik er atm niet echt n butget voor
Maar als ik ergens geld er voor vind is t zeker de moeite waard lijkt me
Er staat ook heel veel goede filmpjes op die gratis zijn.mistercmaster schreef op zondag 01 maart 2015 @ 13:17:
[...]
Klinkt goed. Alleen eigenlijk heb ik er atm niet echt n butget voor.
Maar als ik ergens geld er voor vind is t zeker de moeite waard lijkt me
Zijn er hier mensen die er voor betalen?
Wat ik zou willen weten dan is het de moeite waard?
[ Voor 36% gewijzigd door mbenjamins op 01-03-2015 14:04 ]
Yes! Prijs kwaliteit is zeker de moeite waard!mbenjamins schreef op zondag 01 maart 2015 @ 14:04:
[...]
Er staat ook heel veel goede filmpjes op die gratis zijn.
Zijn er hier mensen die er voor betalen?
Wat ik zou willen weten dan is het de moeite waard?
RTFM!
Tja, ik denk niet dat je wel iemand vind die jou gratis les gaat geven. Er zijn genoeg goede tutorials en filmpjes te vinden op internet. Laracasts heeft ook een heleboel gratis video's, bijvoorbeeld Laravel 5 Fundamentals, die denk ik wel zoveel bevat dat je er een aardig eind mee op weg zal kunnen komenmistercmaster schreef op zondag 01 maart 2015 @ 13:17:
[...]
Klinkt goed. Alleen eigenlijk heb ik er atm niet echt n butget voor.
Maar als ik ergens geld er voor vind is t zeker de moeite waard lijkt me
Zeker de moeite waard. Ik heb een abonnement en iedere werknemer die het wil krijgt van mij ook een abonnement. Ik denk dat nu zo'n 10-12 developers van ons het volgen.mbenjamins schreef op zondag 01 maart 2015 @ 14:04:
[...]
Er staat ook heel veel goede filmpjes op die gratis zijn.
Zijn er hier mensen die er voor betalen?
Wat ik zou willen weten dan is het de moeite waard?
https://github.com/nickurt/laravel-postcodeapi
Het is nog niet compleet af, maar het begin is er, misschien handig voor sommigen.
Er staan op Laracast tutorials die je gratis kunt volgen om zelf stappen verder te kunnen zetten. Maar wat zou je allemaal nog meer willen weten via Skype?mistercmaster schreef op zondag 01 maart 2015 @ 12:42:
Yow,
Ik ben erg geintereseerd in leren gebruiken van laravel.
PHP ben ik een aardig eind opweg maar ik zou toch graag iemand hebben die me net ff een steuntje in de rug kan geven met het leren van laravel.
Dus als iemand zin heeft om een keertje mij wat bij te brengen over n skype call oid. Word dat zeer gewaardeerd.
Ik ken het basic MVC principe, en ik heb al wat tutorials geprobeert.
Hopelijk loopt deze goodboy rond op tweakers
Mvg,
Chiel
iets als
1
| <a href="{{ redirect()->guest('user/login') }}">link</a> |
Waarom?
We willen gebruikers zo veel mogelijk pushen een account aan te maken. Dus de mogelijkheden tonen, maar bij actie het inlogformulier tonen.
=== FIXED ===
1
| <a href="{{ redirect()->guest('user/login') }}?intended=1">link</a> |
en vervolgens in de controller
1
2
3
4
| if(Input::get('intended')) { Session::put('url.intended', URL::previous()); } |
[ Voor 28% gewijzigd door _Moe_ op 02-03-2015 11:15 ]
RTFM!
'redirect()' geeft wel een RedirectResponse terug he. Als je een link wil maken, kan je beter url('user/login') gebruiken._Moe_ schreef op maandag 02 maart 2015 @ 10:59:
Is er de mogelijkheid om vanuit een link langs Redirect::guest() te passeren?
iets als
code:
1 <a href="{{ redirect()->guest('user/login') }}">link</a>
Waarom?
We willen gebruikers zo veel mogelijk pushen een account aan te maken. Dus de mogelijkheden tonen, maar bij actie het inlogformulier tonen.
=== FIXED ===
code:
1 <a href="{{ redirect()->guest('user/login') }}?intended=1">link</a>
en vervolgens in de controller
PHP:
1 2 3 4 if(Input::get('intended')) { Session::put('url.intended', URL::previous()); }
sorry mijn fout, vergeten aan te passen.Barryvdh schreef op maandag 02 maart 2015 @ 12:21:
[...]
'redirect()' geeft wel een RedirectResponse terug he. Als je een link wil maken, kan je beter url('user/login') gebruiken.
zo dus:
1
| <a href="{{ route('user.login') }}?intended=1">link</a> |
RTFM!
Virtuele getters lijken niet te werken, evenals de getBlablaAttribute werkt niet, want het is geen bestaande. Hopelijk kan het
edit: niet vergeten dat veld in $appends te zetten voor de json output.
[ Voor 15% gewijzigd door afraca op 05-03-2015 11:39 ]
IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB
Waarschijnlijk dat jaafraca schreef op donderdag 05 maart 2015 @ 11:39:
edit: niet vergeten dat veld in $appends te zetten voor de json output.
http://laravel.com/docs/5...verting-to-arrays-or-json
Al wordt wel vaak gezegd dat het niet altijd even verstandig is om je API direct te mappen op je model. Je kan ook zoiets als https://github.com/dingo/api gebruiken als je een uitgebreide API maakt.Hiding Attributes From Array Or JSON Conversion
Occasionally, you may need to add array attributes that do not have a corresponding column in your database. To do so, simply define an accessor for the value:
PHP:
1 2 3 4 public function getIsAdminAttribute() { return $this->attributes['admin'] == 'yes'; }
Once you have created the accessor, just add the value to the appends property on the model:
PHP:
1 protected $appends = ['is_admin'];
Once the attribute has been added to the appends list, it will be included in both the model's array and JSON forms. Attributes in the appends array respect the visible and hidden configuration on the model.
[ Voor 9% gewijzigd door Barryvdh op 05-03-2015 13:09 ]
RTFM!
Voor mij voldoet hij prima.. heb nog een enkele rol aan een user gekoppeld, that's it. Eerder in het topic is een ACL package voorbij gekomen.. bij een grotere applicatie zou ik die gebruiken denk ik zo._Moe_ schreef op donderdag 05 maart 2015 @ 20:35:
Maken jullie gebruik van het standaard user systeem van L5 of maken jullie gebruik van een alternatief?
Of als je een tussenweg zoekt https://github.com/thephpleague/fractal gebruiken om je models te mappen naar JSON (zo kun je ook zorgen dat de datatypes kloppen bijvoorbeeld).Barryvdh schreef op donderdag 05 maart 2015 @ 13:08:
[...]
Waarschijnlijk dat ja
http://laravel.com/docs/5...verting-to-arrays-or-json
[...]
Al wordt wel vaak gezegd dat het niet altijd even verstandig is om je API direct te mappen op je model. Je kan ook zoiets als https://github.com/dingo/api gebruiken als je een uitgebreide API maakt.
Ik mis alleen het 'verify registration' idee, wat op zich dan ook wel best snel geimplementeerd is.trix0r schreef op donderdag 05 maart 2015 @ 20:38:
[...]
Voor mij voldoet hij prima.. heb nog een enkele rol aan een user gekoppeld, that's it. Eerder in het topic is een ACL package voorbij gekomen.. bij een grotere applicatie zou ik die gebruiken denk ik zo.
Voor ACL maak ik gebruik van Entrust
RTFM!
Password reset maakt gebruik van een verify token, soortgelijk zou je ook voor registratie kunnen gebruiken._Moe_ schreef op donderdag 05 maart 2015 @ 20:49:
[...]
Ik mis alleen het 'verify registration' idee, wat op zich dan ook wel best snel geimplementeerd is.
Voor ACL maak ik gebruik van Entrust
Ugh.. ik probeer de Auth:: class te extenden, maar ik kom er niet uit. Ik wil net als Auth::guest, gebruik maken van Auth::admin. Simpelweg omdat het lekker kort is, en makkelijk voor de opbouw van mijn menu.
Ik heb een serviceprovider aangemaakt en daarin het volgende gedaan:
1
2
3
4
5
6
7
8
| public function boot() { \Auth::extend('admin', function() { }); } |
Maar dit heeft geen effect... ook via het volgende niet:
1
| $this->app['auth']->extend('admin',function(){}); |
Hoe moet het wel?
[ Voor 40% gewijzigd door Montaner op 05-03-2015 22:20 ]
Ik heb een User model waar een functie op zit met de naam isSupplier(), deze doet een check of de betreffende user een Supplier is.
Nu heb ik een Middleware gemaakt op basis van de standaard auth Middleware die in Laravel zit, maar het lukt niet om vanuit de $request->user() mijn functie uit het model aan te roepen. Dit zou wel mogelijk moeten zijn, zoals onder andere hier wordt vermeld: https://gist.github.com/d...5f4246#file-checkrole-php
Ik probeer dus om vanuit mijn Middleware een functie op mijn User model aan te roepen maar die pakt die niet, ik krijg de volgende foutmelding:
En dit is de Middleware:FatalErrorException in AuthSupplier.php line 16:
Call to a member function isSupplier() on a non-object in AuthSupplier.php line 50
at HandleExceptions->fatalExceptionFromError(array('type' => '1', 'message' => 'Call to a member function isSupplier() on a non-object', 'file' => 'C:\xampp\htdocs\AVH\app\Http\Middleware\AuthSupplier.php', 'line' => '16')) in HandleExceptions.php line 116
at HandleExceptions->handleShutdown()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| <?php namespace App\Http\Middleware; use Closure; class AuthSupplier { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if($request->user()->isSupplier()) { return $next($request); } } } |
Alvast bedankt voor jullie hulp!
[ Voor 3% gewijzigd door Marcel_ op 06-03-2015 18:06 ]
Ikzelf zit nog op L4.2 , dus met Middleware niet echt ervaring.
IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB
https://github.com/larave...directIfAuthenticated.php
1
2
3
4
5
6
7
8
9
10
11
12
13
| public function __construct(Guard $auth) { $this->auth = $auth; } public function handle($request, Closure $next) { if ($this->auth->check()) { return new RedirectResponse(url('/home')); } return $next($request); } |
Dan geven de Guard class mee en gebruiken die om de user status op te vragen. En daarnaast kan het ook zijn dat je niet bent ingelogd, en dan is je object dus ook null.
In jouw geval dus zoiets:
1
2
3
4
5
| $user = $this->auth->user(); if($user && $user->isSupplier()) { return $next($request); } |
Zie mijn vraag eerder. Hoe roep je een soortgelijke functie aan via de Auth class? Ik wil liever niet het user model meegeven aan mijn view, simpelweg om het menu op te bouwen. Dus ipv. Auth::guest() iets te doen als Auth::admin().Barryvdh schreef op vrijdag 06 maart 2015 @ 18:38:
Als ik naar de default Authentication middleware kijk, doen ze het anders:
https://github.com/larave...directIfAuthenticated.php
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 public function __construct(Guard $auth) { $this->auth = $auth; } public function handle($request, Closure $next) { if ($this->auth->check()) { return new RedirectResponse(url('/home')); } return $next($request); }
Dan geven de Guard class mee en gebruiken die om de user status op te vragen. En daarnaast kan het ook zijn dat je niet bent ingelogd, en dan is je object dus ook null.
In jouw geval dus zoiets:
PHP:
1 2 3 4 5 $user = $this->auth->user(); if($user && $user->isSupplier()) { return $next($request); }
Of wat is hier 'best practice' in?
Ik gebruik overigens zelf wel eens de Security Voters van Symfony (via https://github.com/barryvdh/laravel-security)
Daar laat je Voters stemmen over of een gebruiker wel/niet een actie mag uitvoeren, bijvoorbeeld door te checken of hij een bepaalde rol heeft of eigenaar is van een bepaald object.
[ Voor 62% gewijzigd door Barryvdh op 09-03-2015 14:17 ]
Webinterface voor deployments dus.
"If you see a light at the end of a wormhole, it's probably a photon torpedo!"
Klopt, ik gebruik ook Rocketeer. Maar die is niet altijd helemaal betrouwbaar nog (heeft niet altijd door dat er iets failt). Als je paar producten hebt zou het wel handig zijn, maar als je veel sites bouwt wordt het wel wat prijzig.Priet schreef op dinsdag 10 maart 2015 @ 08:53:
Op zich ziet het er heel mooi uit. Maar om nu $10 tot $50 per maand uit te geven aan iets wat je ook met Rocketeer voor elkaar kunt krijgen? Ok, het biedt geen webinterface maar de command line heb ik over het algemeen toch altijd open tijdens het developen.
Edit: Al hebben ze dat voorlopig wel gefixt in versie 2.1.0
[ Voor 4% gewijzigd door Barryvdh op 10-03-2015 09:31 ]
Envoyer heeft voor ons meteen weer een groot nadeel; een x aantal projecten. Wij zetten ~50 kleine websites per jaar weg, die je wel als het kan automatisch wil deployen etc. Dus nu gebruiken we ftploy.com.
[ Voor 46% gewijzigd door TheNephilim op 10-03-2015 10:05 ]
Wij gebruiken nog geen Forge nee. Wel interessant dus ga het wel binnenkort proberen.TheNephilim schreef op dinsdag 10 maart 2015 @ 09:51:
Geen Forge gebruikers hier? Dat lijkt me voor die $ 10 per maand toch een goede deal, gezien het zo dicht op het vuur zit.
Envoyer heeft voor ons meteen weer een groot nadeel; een x aantal projecten. Wij zetten ~50 kleine websites per jaar weg, die je wel als het kan automatisch wil deployen etc. Dus nu gebruiken we ftploy.com.
In principe werkt Rocketeer hetzelfde als Envoyer, alleen via de commandline. Voor jezelf/kleine teams is het wel makkelijk ('git commit', 'git push', 'rocketeer deploy') maar voor grote teams wil je misschien een centrale omgeving hebben, waar iemand met bepaalde rechten een deployment kan uitvoeren en je ook vorige deployments kan bekijken.
/Edit: Web interface voor Rocketeer staat wel op de planning
[ Voor 6% gewijzigd door Barryvdh op 10-03-2015 10:44 ]
Jawel, maar gelijk weer opgezegd. Erg beperkt qua features, volledig onduidelijk hoe je VPS nu geconfigureerd is (firewall? updates? users?) en een totaal gebrek aan documentatie. Er wordt maar één enkele database aangemaakt, en verder moet je het zelf maar uitzoeken. Meerdere sites met een aparte database betekend dus alsnog via SSH verbinding en zelf alles regelen.TheNephilim schreef op dinsdag 10 maart 2015 @ 09:51:
Geen Forge gebruikers hier? Dat lijkt me voor die $ 10 per maand toch een goede deal, gezien het zo dicht op het vuur zit.
En het is me zelfs overkomen dat het toevoegen van een site (waar Forge om draait, en dus goed zou moeten werken), de hele nginx configuratie om zeep heeft geholpen zonder duidelijke reden/aanwijzing of fouten in een config bestand. Als niet sys-admin zou ik dus dan m'n hele server opnieuw moeten provisionen om alles weer werkend te krijgen.
Ik snap dat het geen volledig control panel is, maar meer dan een server provisionen en een nieuwe nginx configuratie toevoegen doet het niet. (en dan ga ik er even van uit dat bovenstaande fout een incident was, anders blijft alleen een server provisionen over). Deployen vanuit GitHub ben ik niet eens aan toegekomen.
Nee, hoe enthousiast ik begon aan het 'Forge avontuur', hoe diep teleurgesteld ik nu ben. Wat een wanproduct.
/edit: om een beeld te geven; ik heb 3x mijn VPS opnieuw geïnstalleerd via Forge en geprobeerd om OctoberCMS aan de gang te krijgen via de 'Forge' manier, en 3x was het een hoop frustratie en ellende, waarbij ik zelfs maar één keer een werkende installatie had.
[ Voor 8% gewijzigd door Siebsel op 10-03-2015 17:12 ]
1
2
3
| <?php Route::resource('locaties', ['uses'=>'fooController','binding'=>'foo']); |
Soort van.
IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB
Bedankt voor het delen van je ervaring!Siebsel schreef op dinsdag 10 maart 2015 @ 17:10:
[...]
Jawel, maar gelijk weer opgezegd. Erg beperkt qua features, volledig onduidelijk hoe je VPS nu geconfigureerd is (firewall? updates? users?) en een totaal gebrek aan documentatie. Er wordt maar één enkele database aangemaakt, en verder moet je het zelf maar uitzoeken. Meerdere sites met een aparte database betekend dus alsnog via SSH verbinding en zelf alles regelen.
En het is me zelfs overkomen dat het toevoegen van een site (waar Forge om draait, en dus goed zou moeten werken), de hele nginx configuratie om zeep heeft geholpen zonder duidelijke reden/aanwijzing of fouten in een config bestand. Als niet sys-admin zou ik dus dan m'n hele server opnieuw moeten provisionen om alles weer werkend te krijgen.
Ik snap dat het geen volledig control panel is, maar meer dan een server provisionen en een nieuwe nginx configuratie toevoegen doet het niet. (en dan ga ik er even van uit dat bovenstaande fout een incident was, anders blijft alleen een server provisionen over). Deployen vanuit GitHub ben ik niet eens aan toegekomen.
Nee, hoe enthousiast ik begon aan het 'Forge avontuur', hoe diep teleurgesteld ik nu ben. Wat een wanproduct.
/edit: om een beeld te geven; ik heb 3x mijn VPS opnieuw geïnstalleerd via Forge en geprobeerd om OctoberCMS aan de gang te krijgen via de 'Forge' manier, en 3x was het een hoop frustratie en ellende, waarbij ik zelfs maar één keer een werkende installatie had.
Dat klinkt allemaal niet heel erg aantrekkelijk. Zoals ik het begrijp ben je beperkt qua instellingen en mogelijkheden en meer dan je project erop knallen en een stukje provisioning doet het niet dus.
Nou dan maar voorlopig gewoon bij FTPloy blijven, die voldoet voor ons nog prima. Ze moeten nog wel aardig wat doen, maar wat je echt nodig hebt zit erin en dat is automatisch deployen vanaf een Git branch.
FTPloy ziet er goed uit, ik vroeg me alleen af of er een gratis variant is? Ik wil het vooral een beetje uittesten.TheNephilim schreef op woensdag 11 maart 2015 @ 11:08:
[...]
Bedankt voor het delen van je ervaring!
Dat klinkt allemaal niet heel erg aantrekkelijk. Zoals ik het begrijp ben je beperkt qua instellingen en mogelijkheden en meer dan je project erop knallen en een stukje provisioning doet het niet dus.
Nou dan maar voorlopig gewoon bij FTPloy blijven, die voldoet voor ons nog prima. Ze moeten nog wel aardig wat doen, maar wat je echt nodig hebt zit erin en dat is automatisch deployen vanaf een Git branch.
Daar komt het wel op neer jaTheNephilim schreef op woensdag 11 maart 2015 @ 11:08:
[...]
Dat klinkt allemaal niet heel erg aantrekkelijk. Zoals ik het begrijp ben je beperkt qua instellingen en mogelijkheden en meer dan je project erop knallen en een stukje provisioning doet het niet dus.
Wellicht had ik een verkeerd beeld van wat Forge is, maar dat valt dan ook (deels) weer te verwijten aan gebrek aan informatie/documentatie.
Als je een account registreert kun je gratis één project toevoegen.kevinkrs schreef op woensdag 11 maart 2015 @ 12:37:
[...]
FTPloy ziet er goed uit, ik vroeg me alleen af of er een gratis variant is? Ik wil het vooral een beetje uittesten.
Nee dat is ook zo, maar het is toch altijd fijn om één goede deploy tool te hebben. Wel simpel en niet met een maximaal aantal projecten.Siebsel schreef op woensdag 11 maart 2015 @ 13:06:
[...]
Daar komt het wel op neer jaEen complete serveroplossing is het echt absoluut niet, en om eerlijk te zijn zie ik ook de meerwaarde niet echt, het is niet zo dat PHP projecten tegenwoordig zo lastig te installeren zijn
![]()
Wellicht had ik een verkeerd beeld van wat Forge is, maar dat valt dan ook (deels) weer te verwijten aan gebrek aan informatie/documentatie.
Ja ik dus ook, maar dan weet ik dat ook weer
De reden is dat ik dan beter de applicatie in de gaten kan houden en wat er eventueel mis gaat om het op te lossen.
Ik maak nog gebruik van versie 4.2
Ja, dat is zeker mogelijk.mbenjamins schreef op donderdag 12 maart 2015 @ 11:33:
Is het ook mogelijk om de error meldingen in de databate te zetten en/of via de mail binnen te krijgen.
De reden is dat ik dan beter de applicatie in de gaten kan houden en wat er eventueel mis gaat om het op te lossen.
Ik maak nog gebruik van versie 4.2
[ Voor 5% gewijzigd door Barryvdh op 12-03-2015 11:44 ]
Staat toch redelijk uitgebreid beschreven in de docs?mbenjamins schreef op donderdag 12 maart 2015 @ 11:53:
Zou je ook willen vertellen hoe ik dat kan doen.
[...]
Je kan de standaard App::error handler aanpassen, je kan specifieke error afvangen, je kan custom Monolog handlers toevoegen en je kan de Log functie zelf aanpassen..
The logging handler for your application is registered in the app/start/global.php start file. By default, the logger is configured to use a single log file; however, you may customize this behavior as needed. Since Laravel uses the popular Monolog logging library, you can take advantage of the variety of handlers that Monolog offers.
[..]
By default, the app/start/global.php file contains an error handler for all exceptions:
PHP:
1 2 3 4 App::error(function(Exception $exception) { Log::error($exception); });
[..]
Monolog has a variety of additional handlers you may use for logging. If needed, you may access the underlying Monolog instance being used by Laravel:
PHP:
1 $monolog = Log::getMonolog();
You may also register an event to catch all messages passed to the log:
PHP:
1 2 3 4 Log::listen(function($level, $message, $context) { // });
1
2
3
4
| App::error(function(Exception $exception) { my_custom_save_to_database_function(); }); |
Custom monolog handler, bijv. Loggly:
1
2
3
| $handler = new \Monolog\Handler\LogglyHandler($myKey); $handler->setTag($myTag); Log::getMonolog()->pushHandler($handler); |
Daarbij een (volgens mij heel simpele) vraagI: Ik heb twee models; Client en Plugin. Een ManyToMany, want een Client heeft meerdere plugins en een Plugin kan horen bij meerdere clients. Koppeltabel er tussen, werkt allemaal mooi.
Alleen nu ik ik in mijn view in de lijst van plugins, de client count laten zien. Dus bij hoeveel clients is een bepaalde plugin actief?
1. Wat voeg ik in mijn model toe?
2. Hoe is die beschikbaar in mijn view?
1
| $plugins = Plugin::all()->sortBy('updated_at', null, true); |
Je hebt in beide Models een belongsToMany relatie opgezet?TheNephilim schreef op donderdag 12 maart 2015 @ 12:46:
Nog wel lastig, dat veel informatie nog voor Laravel 4.x is. Voor sommige dingen geen probleem, maar ik wil het wel goed doen.
Daarbij een (volgens mij heel simpele) vraagI: Ik heb twee models; Client en Plugin. Een ManyToMany, want een Client heeft meerdere plugins en een Plugin kan horen bij meerdere clients. Koppeltabel er tussen, werkt allemaal mooi.
Alleen nu ik ik in mijn view in de lijst van plugins, de client count laten zien. Dus bij hoeveel clients is een bepaalde plugin actief?
1. Wat voeg ik in mijn model toe?
2. Hoe is die beschikbaar in mijn view?
PHP:
1 $plugins = Plugin::all()->sortBy('updated_at', null, true);
1
2
3
4
5
6
7
8
9
10
11
| // App\Client model public function plugins() { return $this->belongsToMany('App\Plugin'); } // App\Plugin model public function clients() { return $this->belongsToMany('App\Client'); } |
Dan kan je toch gewoon een count() doen op die relatie? Of bedoel je dat niet?
1
| $client->plugins()->count(); |
En wat bedoel je met #2? Je kan je plugins collection toch als variable doorgeven aan je view?
Oh lol, was het echt zo simpelBarryvdh schreef op donderdag 12 maart 2015 @ 13:23:
[...]
Je hebt in beide Models een belongsToMany relatie opgezet?
PHP:
1 2 3 4 5 6 7 8 9 10 11 // App\Client model public function plugins() { return $this->belongsToMany('App\Plugin'); } // App\Plugin model public function clients() { return $this->belongsToMany('App\Client'); }
Dan kan je toch gewoon een count() doen op die relatie? Of bedoel je dat niet?
PHP:
1 $client->plugins()->count();
En wat bedoel je met #2? Je kan je plugins collection toch als variable doorgeven aan je view?
Ik heb inderdaad een belongsToMany relatie opgezet in zowel Client als Plugin.
Het toevoegen van <td>{{ $plugin->clients()->count() }}</td> aan m'n view was al genoeg. Verder geen aanpassingen hoeven doen
Bedankt!
Let wel op dat hij dus voor elke plugin weer die count query doet. Je kan ook een count() doen op de collectie in plaats van de query (dus $plugin->clients->count()) icm EagerLoading maar dan laad je alle objecten in het geheugen, dus ook niet erg efficiënt. (En dit ziet er ook niet super elegant uit)TheNephilim schreef op donderdag 12 maart 2015 @ 13:28:
[...]
Oh lol, was het echt zo simpel
Ik heb inderdaad een belongsToMany relatie opgezet in zowel Client als Plugin.
Het toevoegen van <td>{{ $plugin->clients()->count() }}</td> aan m'n view was al genoeg. Verder geen aanpassingen hoeven doen
Bedankt!
Op dit moment zijn het geen grote hoeveelheden records, maar daar zal ik nog eens naar kijken. Nu kan ik in ieder geval nog niet goed beoordelen wat een goede oplossing is.Barryvdh schreef op donderdag 12 maart 2015 @ 13:44:
[...]
Let wel op dat hij dus voor elke plugin weer die count query doet. Je kan ook een count() doen op de collectie in plaats van de query (dus $plugin->clients->count()) icm EagerLoading maar dan laad je alle objecten in het geheugen, dus ook niet erg efficiënt. (En dit ziet er ook niet super elegant uit)
---
Meer mensen hier die een abonnement hebben voor Laracasts? Thuis maar eens even de creditcard tevoorschijn halen om het in ieder geval een maandje te proberen.
Voorbeeld:
Ik heb een Login tabel (= user model) waar de logins instaan en een Account tabel waar informatie van het account instaat, beide hebben een primary key AID. Relatie is aangemaakt in de models.
Ik dacht dat je zoiets kon gebruiken:
Auth::user()->account()->Email maar dan krijg ik een foutmelding dan de class Account niet is gevonden:
FatalErrorException in Model.php line 765:
Class 'Account' not found
Iemand enig idee?
Edit: foutje in model...
In de meeste gevallen ga je eager loading dan ook niet toepassen op alle records van een bepaalde tabel, of zie ik dat verkeerd? Zijn er andere alternatieven dan?Barryvdh schreef op donderdag 12 maart 2015 @ 13:44:
[...]
... icm EagerLoading maar dan laad je alle objecten in het geheugen, dus ook niet erg efficiënt....
Ik heb er een, en het het me nog geen seconde beklaagdTheNephilim schreef op donderdag 12 maart 2015 @ 15:15:
[...]
Meer mensen hier die een abonnement hebben voor Laracasts? Thuis maar eens even de creditcard tevoorschijn halen om het in ieder geval een maandje te proberen.
RTFM!
Done!_Moe_ schreef op donderdag 12 maart 2015 @ 18:59:
[...]
Ik heb er een, en het het me nog geen seconde beklaagd
Verwijderd
[ Voor 44% gewijzigd door Verwijderd op 14-03-2015 14:16 ]
Ik had eerst een self hosted gitlab installatie, maar koste best aardig wat tijd elke keer om update's door te voeren.
Driving a cadillac in a fool's parade.
Hier zelfde, hebben ook Bitbucket (want gratis unlimited repo's). Voordeel van git is dat overal waar je een clone hebt, je in principe het volledige repository hebt, dus je bent niet extreem afhankelijk van Bitbucket.kwaakvaak_v2 schreef op zondag 15 maart 2015 @ 17:31:
Bitbucket voor GIT, goedkoper dan Github en voor wat wij nodig hebben veel geschikter. (Unlimited private repo's)
Daarnaast gebruiken we Hipchat en ik zou ook Jira nog eens willen proberen misschien.
Voorbeeldje: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
Zie https://github.com/barryv...a-for-container-instances
1
2
3
4
5
| app('events')->.. \App::make('events')->.. /** @var \Illuminate\Foundation\Application $app */ $app->make('events')->fire(); |
Vult dus methods van `Illuminate\Events\Dispatcher` aan.
[ Voor 28% gewijzigd door Barryvdh op 16-03-2015 14:59 ]
Gebruik deze plugin :). Die is zo irritant dat je het snel genoeg weetTheNephilim schreef op maandag 16 maart 2015 @ 13:51:
Hmmm, die kerel van Laracasts zie ik ook verschillende hotkeys etc gebruiken. Daar moet ik toch eens een cheat-sheet voor opzoeken, want ik weet nog teveel niet
GitHub + Travis CI + Coveralls.io + StyleCI (self hosted version, want toegang tot private repos nodig) + HipChat. Alles met elkaar geïntegreerd, alles gaat via issues en pull-requests, dus alle tests worden netjes uitgevoerd en een PR krijg een rood kruisje op het moment dat één van deze dingen faalt.Verwijderd schreef op zaterdag 14 maart 2015 @ 13:18:
Ik ben benieuwd hoe er bij jullie op het werk wordt omgegaan met tools/diensten als Forge, Envoyer, Travis of BitBucket. Het liefst alles in eigen beheer of toch gaan voor (hopelijk) flexibiliteit en gemak?
Nice! Snapt ie ook app()->make('App\MyClass',['param']); ?Barryvdh schreef op maandag 16 maart 2015 @ 13:42:
Voor de PhpStorm gebruikers, ik heb een Meta-file command toegevoegd zodat PhpStorm snapt wat voor class je probeert te resolven, zodat je daar ook auto-complete op hebt.
Voorbeeldje: https://gist.github.com/barryvdh/bb6ffc5d11e0a75dba67
Zie https://github.com/barryv...a-for-container-instances
PHP:
1 2 3 4 5 app('events')->.. \App::make('events')->.. /** @var \Illuminate\Foundation\Application $app */ $app->make('events')->fire();
Vult dus methods van `Illuminate\Events\Dispatcher` aan.
[ Voor 25% gewijzigd door Siebsel op 16-03-2015 16:10 ]
Ehh, die specifieke case niet, omdat app() niet een goede phpdoc heeft. Wel app('App\MyClass',['param']); of \App::make('App\MyClass',['param']); als het goed isSiebsel schreef op maandag 16 maart 2015 @ 16:06:
Nice! Snapt ie ook app()->make('App\MyClass',['param']); ?
1
2
3
4
5
6
7
8
9
| function app($make = null) { if ( ! is_null($make)) { return app()->make($make); } return Illuminate\Container\Container::getInstance(); } |
Daar worden geen params meegegeven...
Discussies over de toekomst van Laravel, handig tips&trucs, nuttige packages, aanwezigheid op Laracon etc etc. Het is niet de bedoeling om hier problemen voor te leggen. Daar moet nog steeds een los topic voor aangemaakt worden!