Npm van php?quote:Op zondag 19 april 2020 18:35 schreef Aether het volgende:
[..]
Meer Composer: https://getcomposer.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CklrIGJlbiBlZW4gbm9vYiBvZnpvLCB3YW50IGlrIGtyaWpnIGhldCBuaWV0IHZvb3IgZWxrYWFy IG9tIG1ldCBuYW1lc3BhY2VzIGFuZCBjbGFzc2VzIHRlIHdlcmtlbi4KCltjb2RlXQo8P3BocAoj IHNyYy9Gb28vQmF6LnBocApuYW1lc3BhY2UgXEZvb1xCYXI7CmNsYXNzIEJheiB7CiAgICBwdWJs aWMgJHZhciA9ICdhIGRlZmF1bHQgdmFsdWUnOwogICAgcHVibGljIGZ1bmN0aW9uIGRpc3BsYXlW YXIoKSB7CiAgICAgICAgZWNobyAkdGhpcy0+dmFyOwogICAgfQp9Cj8+ClsvY29kZV0KCkRlIHRl c3Q6CgpbY29kZV0KPD9waHAKCnVzZSBGb29cQmFyOwp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVz dENhc2U7CgpjbGFzcyBGb29CYXJUZXN0IGV4dGVuZHMgVGVzdENhc2UgewogICAgcHVibGljIGZ1 bmN0aW9uIHRlc3RJbnN0YW50aWF0aW9uKCkgewoKICAgICAgICAkaW1wb3J0ID0gbmV3IEZvb1xC YXJcQmF6KCk7CiAgICAgICAgLy8kdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignQmF6JywgJGltcG9y dCk7CiAgICB9Cn0KCj8+ClsvY29kZV0KClpvZHJhIGlrIHBocHVuaXQgdGVzdHMgZHJhYWk6Cgpb Y29kZV0KMSkgRm9vQmFyVGVzdDo6dGVzdEluc3RhbnRpYXRpb24KRXJyb3I6IENsYXNzICdGb29c QmFyXEJheicgbm90IGZvdW5kClsvY29kZV0KCkVuIGhldCBtYWFrdCBuaWV0IHVpdCBvZiBpayB1 c2UgRm9vXEJhciwgdXNlIFxGb29cQmFyIGdlYnJ1aWssIG9mIGRhdCBpayAkdGhpbmcgPSBuZXcg Rm9vXEJhclxCYXogb2YgXEZvb1xCYXJcQmF6IG9mIGFsbGVlbiBCYXogZ2VicnVpaywgZGUgZm91 dG1lbGRpbmcgaXMgZGF0IGhldCBuaWV0IHdlcmt0LiBXaGF0IGFtIEkgbWlzc2luZz8K |
Use statements werken niet zoals met perl, je moet een corresponderende mappenstructuur hebben. Maw je Baz.php class moet in de src/Foo/Bar folder staan, en je moet in je test dan ook "use Foo/Bar/Baz" hebben. Een use statement is in php niks meer dan definitie van een alias, het doet vanzichzelf helemaal niks, en laadt ook geen bestanden of folders in ofzo.quote:Op zondag 19 april 2020 22:11 schreef slacker_nl het volgende:
Ok, om om de cloudfare protectie heen te komen, even m'n bericht gebase64-ed. Wil je het lezen: base64 -d en je bent golden.
[ code verwijderd ]
Dit is wat ik begrepen heb:quote:Op zondag 19 april 2020 22:29 schreef Farenji het volgende:
[..]
Use statements werken niet zoals met perl, je moet een corresponderende mappenstructuur hebben. Maw je Baz.php class moet in de src/Foo/Bar folder staan, en je moet in je test dan ook "use Foo/Bar/Baz" hebben. Een use statement is in php niks meer dan definitie van een alias, het doet vanzichzelf helemaal niks, en laadt ook geen bestanden of folders in ofzo.
Nope, de conventie is 1 class per file met dezelfde naam als de file. Dus src/Snarf/Gronk.php met daarin class Gronk en namespace Snarf. In andere files doe je dan "use Snarf/Gronk;" en dan "$gronk = new Gronk;", of zonder use stmt: "new \Snarf\Gronk;".quote:Op zondag 19 april 2020 22:45 schreef slacker_nl het volgende:
[..]
Dit is wat ik begrepen heb:
namespace Foo => src/Foo.php, in Foo.php kan je een class neerplempen, laten we zeggen class Foodle.
Dan kan ik in een andere file, use Foo\Foodle; doen en dan kan ik $thing = new Foo\Foodle(); zeggen en dan moet het werken, right?
Bij gebrek aan een smiley waar het hoofd ontploft. Die path voorbeelden onder aan de pagina zijn ook mind is blown verhaal.quote:Op zondag 19 april 2020 23:06 schreef Farenji het volgende:
[..]
Nope, de conventie is 1 class per file met dezelfde naam als de file. Dus src/Snarf/Gronk.php met daarin class Gronk en namespace Snarf. In andere files doe je dan "use Snarf/Gronk;" en dan "$gronk = new Gronk;", of zonder use stmt: "new \Snarf\Gronk;".
Als je autoloading gebruikt (zoals met composer) moet je de psr-4 standaard volgen anders werkt het niet.
https://www.php-fig.org/psr/psr-4/
1 | { "autoload" : { "psr-4" : {"//Foo//" : "src" }}} |
Ja dat klopt.quote:Op zondag 19 april 2020 23:17 schreef slacker_nl het volgende:
[..]
Bij gebrek aan een smiley waar het hoofd ontploft. Die path voorbeelden onder aan de pagina zijn ook mind is blown verhaal.
Ik denk dat ik het snap, dus als ik in de composer.json het volgende zeg:
[ code verwijderd ]
Dan is de file src/Bar.php, met namespace Foo, eigenlijk 'Foo/Bar'? En in die file heb ik dan ook een class die Bar heet. Ja? Nee, maybe?
Waarom?quote:Op zaterdag 10 oktober 2020 11:44 schreef DevFreak het volgende:
[..]
Het valt me op dat ik en andere PHP'ers altijd spontaan jeuk krijgen van NPM.
Hm vind zowel npm als yarn fijner werken dan composer juist.quote:Op zaterdag 10 oktober 2020 11:51 schreef DevFreak het volgende:
[..]
Composer werkt gewoon veel prettiger. Is even geleden, maar i had er destijds ruzie mee.
Terecht, wat een ellendige cluster fuck is dat zeg. Sowieso dat hele js ecosysteem is dikke ellende. Honderd miljoen miljard packages die vaak bestaan uit triviale oneliners omdat js nog steeds geen fatsoenlijke core libs heeft.quote:Op zaterdag 10 oktober 2020 11:44 schreef DevFreak het volgende:
[..]
Het valt me op dat ik en andere PHP'ers altijd spontaan jeuk krijgen van NPM.
Klopt, ik moet ook echt helemaal niks van dat JS hebben. Het is al bijzonder lastig om de autoloading functionerend te krijgen...quote:Op zaterdag 10 oktober 2020 12:07 schreef Farenji het volgende:
[..]
Terecht, wat een ellendige cluster fuck is dat zeg. Sowieso dat hele js ecosysteem is dikke ellende. Honderd miljoen miljard packages die vaak bestaan uit triviale oneliners omdat js nog steeds geen fatsoenlijke core libs heeft.
Autoloading?quote:Op zaterdag 10 oktober 2020 12:17 schreef DevFreak het volgende:
[..]
Klopt, ik moet ook echt helemaal niks van dat JS hebben. Het is al bijzonder lastig om de autoloading functionerend te krijgen...
Wat ze bij Google doen met V8 moeten ze lekker zelf weten, maar ik kijk lekker de andere kant op.
Al moet ik zeggen dat NPM binnen .NET best redelijk werkt zolang je het niet verneukt.
De hoeveelheid packages is wel een punt bij javascript ja.quote:Op zaterdag 10 oktober 2020 12:07 schreef Farenji het volgende:
[..]
Terecht, wat een ellendige cluster fuck is dat zeg. Sowieso dat hele js ecosysteem is dikke ellende. Honderd miljoen miljard packages die vaak bestaan uit triviale oneliners omdat js nog steeds geen fatsoenlijke core libs heeft.
De taal op zich is prima, maar inderdaad, veel code in het ecosysteem moet vaak backwards-compatible zijn. Vandaar dat de libraries soms wat verouderd aanvoelen. Maar functioneel werkt het prima.quote:Op zaterdag 10 oktober 2020 12:00 schreef FlippingCoin het volgende:
[..]
Hm vind zowel npm als yarn fijner werken dan composer juist.
Vind sowieso het PHP ecosysteem altijd zo ouderwets aanvoelen vergeleken bij dat van JS. Maar goed kan komen doordat ik recent weer met PHP moet werken.
Asynchroniteit is een beetje raar in javascript, het is een synchrone taal die taken door de environment uit kan laten voeren. Je hebt wel await en ze promises wat best fijn werkt, hiernaast zijn ze bezig met wat reactive elementen die nu in rxjs zitten in de taal te trekken. Het probleem is dat je ook oudere browsers wilt ondersteunen en daar heb je polyfils voor nodig. Ik weet niet per se of dat met andere talen anders zou zijn.quote:Op zaterdag 10 oktober 2020 14:30 schreef DevFreak het volgende:
[..]
De taal op zich is prima, maar inderdaad, veel code in het ecosysteem moet vaak backwards-compatible zijn. Vandaar dat de libraries soms wat verouderd aanvoelen. Maar functioneel werkt het prima.
Het is alleen heel zuur dat je een externe library moet gebruiken voor high-performance computing (async, nieuwe threads).
Ik moest even opzoeken wat het isquote:Op zaterdag 10 oktober 2020 14:54 schreef FlippingCoin het volgende:
[..]
Asynchroniteit is een beetje raar in javascript, het is een synchrone taal die taken door de environment uit kan laten voeren. Je hebt wel await en ze promises wat best fijn werkt, hiernaast zijn ze bezig met wat reactive elementen die nu in rxjs zitten in de taal te trekken. Het probleem is dat je ook oudere browsers wilt ondersteunen en daar heb je polyfils voor nodig. Ik weet niet per se of dat met andere talen anders zou zijn.
Ik neem toch aan dat je geen high performance computing in PHP probeert te doen.quote:Op zaterdag 10 oktober 2020 14:30 schreef DevFreak het volgende:
[..]
De taal op zich is prima, maar inderdaad, veel code in het ecosysteem moet vaak backwards-compatible zijn. Vandaar dat de libraries soms wat verouderd aanvoelen. Maar functioneel werkt het prima.
Het is alleen heel zuur dat je een externe library moet gebruiken voor high-performance computing (async, nieuwe threads).
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |