Mafiasource 3 release

  • Beste leden,


    Breng jullie graag op de hoogte over mijn open-source release.
    Source code en tal van info is te vinden op https://github.com/Mafiasource/Mafiasource
    Dat deze release een mogelijkheid mag bieden voor alle crimeclub enthousiasten om van start te kunnen gaan zonder van 0 te moeten herbeginnen.


    Er waren eerst twijfels om eventueel geen geschikte koper te zoeken, maar na enkele weken alles op een rijtje te zetten toch maar besloten om er zoveel mogelijk anderen een plezier mee trachten te doen en hen proberen te stimuleren tot programmeren. (Al is het maar knutselen)
    Heb in het verleden het geluk getroffen om van start te kunnen gaan in een illegale source anders ging ik jullie 9/10 geen open-source cc kunnen aanbieden. Heb crimeclub zo goed mogelijk trachten te herbouwen vanaf 0 met een eigen unieke twist en kleine verschillen in gameplay.


    Hoop in eerste instantie dat het project velen kan helpen en doen bijleren ookal is mijn project verre van perfect!
    Onder MIT licentie vrijgegeven.


    Vandaag ook meteen mijn eerste code quality check ooit doorstaan. Er zal nog actief gewerkt worden om een zo goed mogelijke quality score te behalen. Zal mijn best blijven doen om bugs ook zo snel mogelijk te fixen. Verder kan ik momenteel weinig beloven i.v.m. toekomstige updates aangezien ik aanvoel vrij klaar te zijn met CrimeClub programmeren in het algemeen, en dus ook een van de redenen tot deze release. Enjoy!


    Demo is te vinden op mafiasource.nl men kan inloggen met volgende gegevens:
    Gebruikersnaam: ms-demo
    Wachtwoord: demo-ms



    Vriendelijke groeten
    Michael

  • Super, Goed bezig, tof dat je dit vrijgeeft!


    @K.Rens of @Jesse kunnen wij dit stukje hosten op ICTScripters?


    #Missing resources Can be downloaded from: https://www.mafiasource.nl/web/downloads/public_html.zip These include all images and 2 ckeditor packages excluded in gitignore.

    Dan gaat het nooit verloren :)


    Hopelijk krijg je veel forks en pull requests :)

  • Zou dat zeker zien zitten om er eventueel een community rond te bouwen. Er blijft allesinds steeds genoeg werk, en we blijven het graag doen ookal kunnen kern redenen soms vaak verschillen! Wil dan voorlopig ook even focussen op 't quality code aspect, lijkt me zeer interessant om doorheen te werken.


    Heb meteen even een virustotal scan laten uitvoeren, kan gerust dubbel gecheckt worden met je eigen public_html.zip download ;)
    https://www.virustotal.com/gui…70c2d0399efd3a5/detection




    Groetjes!

  • Met welke reden plaats je andermans applicaties in de /vendor op je Github-repo?


    Wat is er mis met Composer?
    Op die manier kan iedereen meteen de recentste,, of de door jouw opgegeven versie/branche in composer.json, in één klap downloaden.


    Nu heb je kans dat je misschien een lekke PHPmailer meestuurt aan iedereen.


    Daarnaast zie ik ook hier en daar een vaste domeinnaam in o.a je .htaccess staan. Waarom maak je daar geen generator voor die de juiste .htaccess aanmaakt vanuit het instalaltie-script?

  • Installer doet het nodige in htaccess (simpele search replace of line replace), maar in Edge zal https redirect niet werken na succesvolle installatie. (Zie github issues)


    Verder is PHPMailer altijd stuk of je nu de laatste versie update of niet. (App gewijs)
    Dient in src/Data/UserDAO.php lijn 295 en 298, evt ook 300 aangepast te worden. Er word vanuit gegaan dat het de instellingen voor het email adres [email protected] betreft. (Enkel user no-reply & juiste pass noodzakelijk indien mail server niet van webserver verschilt)


    Veel te weinig ervaring met composer om deze netjes in de repo in te kunnen laden, zal het absoluut bekijken bedankt!
    Moet ook eerlijk toevoegen, zeer verouderde libraries op twig na.


    Vlug even bekeken en heb al het volgende kunnen samenstellen.

    Zou dat zoiets kunnen zijn in mijn public_html folder als composer.json?
    Weet ook niet meteen hoe dat in z'n werk zou gaan tijdens een pull bv worden de externe libraries dan gewoon mee bezorgd?


    Is de bedoeling dat al mijn vendor files in die directory komen. Heb ook wel 2 andere packages zitten in web/lib/ echt geen idee hoe ik dat zou kunnen 'requirren' naar de juiste directory. /lib/ckeditorgame ook weer een apart geval werd manueel aangepast voor een in-game stijl.

  • Hoe bedoel je dat PHPmailer altijd stuk is?
    Het werkt hier perfect hoor? Wat merk jij er dan aan wat niet correct werkt?


    Die composer.json kan je prima gebruiken.
    Via Packagist.org kan je zien op welke manier je welke packages je kan toevoegen aan je composer.json. Ik neem aan dat je dit ook op die manier gedaan hebt om je json-file zo te krijgen?


    Het is uiteindelijk NIET de bedoeling dat je de /vendor/ zelf meelevert, maar dat de gebruiker van het script die packages binnenhaalt via composer. Dan heb je altijd de nieuwste versie (of uit de gekozen branch).

  • Zoals die in de applicatie is verwerkt is die 'stuk' zonder aanpassingen in UserDAO.php i.v.m. mailserver, user en ww.
    Standaard zullen emails dus niet verzonden worden als die werden aangevraagd via mafiasource. Had daar spijtig genoeg geen rekening mee gehouden.


    Zou zeer handig zijn ja.
    1 twijfelgeval overal waar ik deze composer packages gebruik in de mafiasource require ik dat via het pad vanuit /vendor/... maar als die dan zouden verdwijnen en ik werk via die composer file zal de source dan geen onbestaande code proberen requiren / includen?
    m.a.w. hoe kan ik ervoor zorgen dat dit dan zonder z'n require statement in orde komt?
    Of kan ik verwachten dan tijdens binnen halen met composer?? deze meteen worden meegeleverd op de juiste plaats in vendor met juiste structuur en autoload.php nodig voor de applicatie?


    Nu autoload ik vooral alle packages apart dus via die require statements (vendor/..), wat ik vooral van packagist.org kan afleiden is dat voor meerdere packages best 1 autoloader.php kan gebruikt worden of heb ik dat mis?


    Blijft allemaal beetje ingewikkeld momenteel het spijt me!
    Zal er wel werk van maken. Als iemand een goeie composer tutorial kent hoor ik het graag!


    Zodat ik na mogelijke aanpassingen aan de Github en install ook zo goed mogelijk kan beschrijven aan eventuele gebruikers om alles mooi werkend te krijgen.



    Groetjes!

  • En zulke mail-configuratie-zaken horen niet in de diepe krochten van een bestand. Die horen in een speciaal configuratie-bestand die je in no-time kan vinden. Vaak in een /conf/ directory.


    Die composer-packages uit /vendor/ horen niet in jouw repo, want daar worden ze nooit geüpdated.
    Je kan ze natuurlijk wel forken, maar dat is een ander verhaal waarbij jij de verantwoordelijkheid creëert voor de ontwikkeling van die packages in een nieuwe lijn. Dat lijkt mij niet de bedoeling, en daar ga ik niet verder op in.


    Verder maakt composer in je /vendor/ map een autoloader.php aan. Dit bestand moet je dus centraal includeren in je source/framework en dit zorgt er dan voor dat alle PHP-packages in je /vendor/ automatisch geïncludeerd worden. Je hoeft dus niet zelf meer het pad naar PHPmailer/Twig/Doctrine/whatever zelf op te geven. Je hoeft enkel nog de class te initialiseren op de manier zoals je altijd doet. De autoloader doet zijn werk.


    - Je moet dus je mail-configuratie naar een centraal configuratorbestand brengen. (Geen onderdeel van composer, maar het maakt je source wel beter beheerbaar)
    - Je /vendors/ uit je repo halen.
    - Instructies in een Readme.md plaatsen waarin je voor je gebruikers uitlegt hoe ze met composer om moeten gaan. Een kwestie van dit uitvoeren:
    php composer.phar update


    Doe anders eens inspiratie op in andere Readme's van andere projecten met een repo. ;)


    Voor wie lokaal programmeert kan Composer makkelijk installeren (werkt in Linux en Windows) en gebruiken op de command line. Op shared hosting is het gebruik van Composer vaak niet mogelijk, maar dan kan je gewoon bij het deployen van de site de boel gewoon uploaden. Het nadeel is dan als je een package wilt updaten, dan moet je dan lokaal doen, en dan /vendor/ weer uploaden.


    Het klinkt misschien ingewikkeld, maar als je de basis van Composer begrijpt, dan ga je het nut ervan zeker wel snappen.

  • Zalig, dit verduidelijkt al enorm veel!


    Gaan we komende dagen zeker werk van maken.


    Zal waarschijnlijk mail configuratie plaatsen waar ongebruikte social media pagina's in config.php werden samengesteld en dat dan ook ergens verduidelijken in de readme.


    Bedankt!


    Misschien nog 1 domme vraag. PHPMailer bv, die is slechts op 2 controllers via een modal van toepassing. Hoe kan ik ervoor zorgen dat die niet bij alle controllers via front-controller word ge autoload? Doctrine & Twig denk ik de enige packages nodig bij iedere request. Kwestie van overhead te besparen waar dat kan?
    Wil ik absoluut kunnen voor de wat zwaardere ckeditor packages. (Ook niet overal nodig)

  • Heb je vast gelijk in! Op zich weinig ervaring in deze frameworks maar ken er wel mijn baan in vinden. Vond dergelijke frameworks ook vooral gericht op hedendaags web app ontwikkelingen met vaak nadruk op CMS, E-Commerce, API of combinatie van al deze. Toen de meeste ervaring in Symfony opgedaan en zag niet onmiddellijk een manier om een crimeclub rpg te ontwikkelen in symfony terwijl die er wel absoluut moet zijn volgens mij ja. Beetje te vluchtig willen starten / niet genoeg ervaring opgedaan? Ook vond ik toen dat ik maar heel weinig ingebouwde symfony modules nodig gehad zou hebben waardoor dan toch maar besloten om mijn vertrouwde custom PHP code manier na te streven. Achteraf bekeken vooral dan af te leiden uit controllers, business en data layers dat die wel stukken vereenvoudigd zouden zijn in een framework als bv. symfony! Althans wel blij dat het toch al een serieuze verbetering is in tegenstelling tot plain PHP. In ieder geval, zou heel graag iets nieuw starten in een framework en alles behalve crimeclub. Alleen misschien nog steeds die angst in functie van gelimiteerde mogelijkheden in een framework? Geen idee.. Wil het zeker overwegen. Laravel lijkt me wel super als die zo lightweight is als geclaimd en met blade die dan vrij goed lijkt op twig kan ik er evt. ook snel mee aan de slag. Mijn eerste maanden symfony ervaring (2014-15) vooral ondervonden hoe zwaar het framework wel niet is localhost! Heb echt geen idee de dag van vandaag ook met alweer zoveel generaties betere hardware etc.. Initiele versie 3 ontwikkelingen ergens midden - end 2015 was dan ook een gefaald Symfony cc projetje! Nadat mijn chat toen enorm veel latency veroorzaakte had ik het gehad lol.

  • thanks werkt perfect !


    is het mogelijk om makkelijk daily/missies toe tevoegen ?

    Bekijk even de DailyChallengeService & DailyChallenge klasses in src/Business & src/Business/Logic/game/Statics
    Met wat basic programmeer kennis kunnen die eenvoudig uitgebreid worden.
    En dan in het stuk code waar deze nieuwe challenge moet opgeteld (+ evt. uitbetaald) worden plaats je:


    Code
    // Helemaal bovenaan de file use statement:
    use src\Business\DailyChallengeService;
    
    
    // Daily $challengeID optellen met $amount (optioneel, standaard 1) voor $challengerUserID (optioneel, indien leeg ingelogde gebruiker)
    $dailyChallengeService = new DailyChallengeService();
    $dailyChallengeService->addToDailiesIfActive($challengeID, $amount, $challengerUserID);

    Opassen met $challengeRewardDbFields uit te breiden, controlleer goed /app/cronjob/day.php zodat nieuwe prijzen netjes ingecalculeerd worden. (fields enkel van toepassing op tabel user)
    Voor missies is het zelfde werkwijze maar het optellen een beetje uitgebreider, stuur gerust een PM als je er niet uit geraakt! ;)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!