Laravel 6

Les collections Laravel, par l'exemple et en français

Avatar de itanea
itanea

Hello, pour faciliter la compréhension sur les collections de Laravel, je me suis lancé dans un très long article sur le sujet. J'en suis actuellement à 15% et ça se passe sur Apprendre le développement web ;-)

Je vous remercie pour vos retours sur l'article, je le modifierai quasiment quotidiennement.

A plus,

Fred

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Tu n'as pas fini parce que il y en a des méthodes !

Je pense d'ailleurs que les collections ne sont pas assez exploitées et que la programmation fonctionnelle a du mal à percer. Pourtant on arrive souvent à optimiser le code de façon élégante. Voilà une fonction tirée d'un de mes packages :

protected function getStrings()
{
  return collect(config('artisan-language.scan_paths', [
      app_path(),
      resource_path('views'),
      resource_path('js'),
  ]))
    ->map(function (string $path) {
        return $this->filesystem->allFiles($path);
    })
    ->collapse()
    ->map(function (SplFileInfo $item) {
        preg_match_all(
            config ('artisan-language.scan_pattern',
                '/(@lang|__|\$t|\$tc)\s*(\(\s*[\'"])([^$]*[^.])([\'"].*)\)*/U'),
            $item->getContents(),
            $out,
            PREG_PATTERN_ORDER);
        return $out[3];
    })
    ->collapse()
    ->unique()
    ->filter(function ($value) {
        return !$this->translator->has($value);
    })
    ->sort(function ($a, $b) {
        return strtolower($a) > strtolower($b);
    });
}

J'ose pas imaginer le code sans les collections :)

Posté il y a 1 mois
Avatar de itanea
itanea

Ha oui belle fonction et belle utilisation des collections !

Il y a 116 méthodes pour le moment dans les collections, je ne parle pas des méthodes supplémentaires liées aux collections Eloquent. Ce sera peut être l'objet d'un second article sur le sujet.

J'espère tout de même finir très rapidement l'article.

Je compte sur vos différents commentaires et encouragement pour m'y aider :D !

Posté il y a 1 mois
Avatar de itanea
itanea

Hello tous le monde.

Le nombre de collections dispo dans Laravel 6 est passé à 118 et Laravel 7 (imminent) en a ajouté une de plus. Même pas peur !!

J'ai dépassé la vingtaine de méthodes couvertes.

Mais ce que je voulais vraiment vous dire c'est que j'ai mis en place un mini-site bonus qui accompagne l'article original. Il montre les collections par l'exemple avec le code et les résultats.

Laravel-Collections

Si le coeur vous en dit, c'est par là --> Laravel Collections par ITANéA

Merci pour vos retours pour que je puisse améliorer si nécessaire.!

Posté il y a 1 mois
Avatar de KYoann
KYoann

C'est cool ce mini site. par contre il serait plus interessant de remplacer le test If you want know..... Par une introduction en une phrase de la méthode en question.

Posté il y a 1 mois
Avatar de itanea
itanea

Merci @KYoann pour tes encouragements. En effet, je me suis déjà fait cette remarque :D Je vais réfléchir à trouver une solution smart à ça. Si quelqu'un a des propositions je suis preneur ;-)

Posté il y a 1 mois
Avatar de itanea
itanea

Allez hop c'est modifié, un peu de Reflection pour récupérer les commentaires des fonctions de la classe et ça roule ;-) Merci @KYoann pour cette suggestion !

Posté il y a 1 mois
Avatar de itanea
itanea

Modification du jour :

J'ai rajouté un peu de prismJS dans le code, cela rends le code source plus lisible qu'avant. :D

Avatar de KYoann
KYoann

Super.

Si je peu me permettre, le Logo + Laravel sur chacune des cards c'est redondant et surtout inutile vue que c'est une page qui ne traite que de laravel. Je verais plutot directement le nom de la méthode à cette place, ca permettrais de gagner une ligne de plus dans le résumé de la méthode. Pour égayer un peu la page, il pourrais y avoir des variantes du logo en fonction de l'effet de la méthode en question, mais ca va demandé un boulot dingue de design.

Avatar de itanea
itanea

Je vais y réfléchir mais je ne te promets rien... ;-)

Avatar de KYoann
KYoann

Tu n'a rien à me prometre ^^

Avatar de itanea
itanea

Bon j'ai été un peu absent ces derniers jours mais c'était pour la "bonne cause" !! J'ai mis à jour mon app sur les collections et j'ai tout intégré en base de données.

Refactoring quand tu nous tiens.

Du coup, je n'ai pas avancé sur de nouvelles méthodes, par contre :

  • tout est géré en base de données => c'est plus souple d'emploi :D
  • @KYoann j'ai intégré ta demande
  • j'ai amélioré la partie frontend (je compte sur vous pour me dire ce que vous en pensez)
  • j'ai une partie "backend" pour ajouter des méthodes
  • tout n'est pas encore codé mais on s'approche de quelques choses de sympa

C'est toujours dispo à la même adresse : https://laravel-collections.itanea.fr

Voici quelques screenshots :

La page d'accueil

Le détail d'une méthode

La liste des méthodes dans le backends

Le formulaire de remplissage d'une méthode dans le backend

Vous en pensez quoi ? (hormis qu'il manque du contenu !!! ;-))

PS : désolé pour la taille des images :-(

Vous ne pouvez pas répondre à ce sujet.