From c2dcaf596644433e2ccb561bb1c16c12d9011af9 Mon Sep 17 00:00:00 2001 From: ginifizz Date: Thu, 12 Sep 2024 11:03:57 +0200 Subject: [PATCH] feat: add timeline for laravel --- pwa/app/(common)/components/Timeline.tsx | 251 +---- .../components/cover/CoverCircleStacks.tsx | 2 +- .../components/cover/StackSelector.tsx | 35 +- .../components/timeline/TimelineLaravel.tsx | 229 +++++ .../components/timeline/TimelineStepTitle.tsx | 2 +- .../components/timeline/TimelineSymfony.tsx | 226 +++++ .../timeline/laravel/InstallCode.mdx | 3 + .../timeline/laravel/InstallLaravelCode.mdx | 4 + .../components/timeline/laravel/Native.mdx | 10 + .../timeline/{ => symfony}/Expose.mdx | 0 .../timeline/{ => symfony}/Install.mdx | 0 .../timeline/{ => symfony}/Native.mdx | 0 .../timeline/{ => symfony}/Plug.mdx | 0 pwa/data/con/2024/partners.ts | 7 - pwa/public/images/cover/laravel-back.svg | 235 ++++- pwa/public/images/cover/laravel-front.svg | 919 +++++++++--------- pwa/public/images/cover/symfony-front.svg | 60 +- 17 files changed, 1241 insertions(+), 742 deletions(-) create mode 100644 pwa/app/(common)/components/timeline/TimelineLaravel.tsx create mode 100644 pwa/app/(common)/components/timeline/TimelineSymfony.tsx create mode 100644 pwa/app/(common)/components/timeline/laravel/InstallCode.mdx create mode 100644 pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx create mode 100644 pwa/app/(common)/components/timeline/laravel/Native.mdx rename pwa/app/(common)/components/timeline/{ => symfony}/Expose.mdx (100%) rename pwa/app/(common)/components/timeline/{ => symfony}/Install.mdx (100%) rename pwa/app/(common)/components/timeline/{ => symfony}/Native.mdx (100%) rename pwa/app/(common)/components/timeline/{ => symfony}/Plug.mdx (100%) diff --git a/pwa/app/(common)/components/Timeline.tsx b/pwa/app/(common)/components/Timeline.tsx index 5fc7a020b..fc118568a 100644 --- a/pwa/app/(common)/components/Timeline.tsx +++ b/pwa/app/(common)/components/Timeline.tsx @@ -1,16 +1,14 @@ +"use client"; + +import { useSearchParams } from "next/navigation"; import classNames from "classnames"; import styles from "./Timeline.module.css"; -import InstallCode from "./timeline/Install.mdx"; -import ExposeCode from "./timeline/Expose.mdx"; -import PlugCode from "./timeline/Plug.mdx"; -import NativeCode from "./timeline/Native.mdx"; -import CodeBlock from "./timeline/CodeBlock"; -import StepContent from "./timeline/StepContent"; -import TimelineStepTitle from "./timeline/TimelineStepTitle"; -import ListPoint from "./timeline/ListPoint"; -import Link from "components/common/Link"; +import TimelineSymfony from "./timeline/TimelineSymfony"; +import TimelineLaravel from "./timeline/TimelineLaravel"; export default function Timeline() { + const searchParams = useSearchParams(); + const stack = searchParams.get("s"); return (
-
- Install the framework - - Install Docker and optionally GitHub CLI. - - - - - -

- Your development environment is ready!{" "} -

- Continuous integration (GitHub Action) as well as recipes to deploy in - production with{" "} - - Docker Compose - {" "} - or{" "} - - Kubernetes - {" "} - are also pre-installed. -
- - Define the resources - - as PHP classes, or using OpenAPI - - - - - - - You get: -
    - - A stable state-of-the-art{" "} - - REST - {" "} - &{" "} - - GraphQL - {" "} - API - - - Automatic documentation{" "} - - OpenAPI - - , SwaggerUI, GraphiQL... - - - Support for standards and formats{" "} - - JSON-LD - - ,{" "} - - Hydra - - , JSON:API - -
-

- Alternatively,{" "} - - generate the classes from an existing RDF vocabulary - - . -
-
API Platform automatically exposes production-grade{" "} - - - HATEOAS - - {" "} - API for you! -

-
- - Plug your business & persistence logic - - - - - -

- The framework has been designed from the ground up to be usable from - Rapid Application Development contexts to{" "} - - Domain-Driven Design - {" "} - or Clean Architecture-like approaches. -

-

You can even mix both approaches!

-
- -

- ...or use the native integration with popular persistence libraries! -

- - - -
-

- API Platform can automatically{" "} - - retrieve - - ,{" "} - - persist - - ,{" "} - - paginate - {" "} - and{" "} - - validate - {" "} - data using the most popular database systems. -

-

- - PostgreSQL - - ,{" "} - - MongoDB - - ,{" "} - - ElasticSearch - - , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} - - out of the box - - . -

-
- -

- You can also make your own{" "} - - persistence system - - ! -

-
- Customize! - -

- Customize every single behavior thanks to our carefully designed - - {" "} - extension points - - . -

-
-
-
+ {stack === "laravel" ? : }
); } diff --git a/pwa/app/(common)/components/cover/CoverCircleStacks.tsx b/pwa/app/(common)/components/cover/CoverCircleStacks.tsx index f94e38e81..23bcee795 100644 --- a/pwa/app/(common)/components/cover/CoverCircleStacks.tsx +++ b/pwa/app/(common)/components/cover/CoverCircleStacks.tsx @@ -112,7 +112,7 @@ export default function CoverCircleStacks() {
-
+
+
diff --git a/pwa/app/(common)/components/timeline/TimelineSymfony.tsx b/pwa/app/(common)/components/timeline/TimelineSymfony.tsx new file mode 100644 index 000000000..b98b41425 --- /dev/null +++ b/pwa/app/(common)/components/timeline/TimelineSymfony.tsx @@ -0,0 +1,226 @@ +"use client"; + +import InstallCode from "./symfony/Install.mdx"; +import ExposeCode from "./symfony/Expose.mdx"; +import PlugCode from "./symfony/Plug.mdx"; +import NativeCode from "./symfony/Native.mdx"; +import CodeBlock from "./CodeBlock"; +import StepContent from "./StepContent"; +import TimelineStepTitle from "./TimelineStepTitle"; +import ListPoint from "./ListPoint"; +import Link from "components/common/Link"; + +export default function TimelineSymfony() { + return ( +
+ Install the framework + + Install Docker and optionally GitHub CLI. + + + + + +

+ Your development environment is ready!{" "} +

+ Continuous integration (GitHub Action) as well as recipes to deploy in + production with{" "} + + Docker Compose + {" "} + or{" "} + + Kubernetes + {" "} + are also pre-installed. +
+ + Define the resources + + as PHP classes, or using OpenAPI + + + + + + + You get: +
    + + A stable state-of-the-art{" "} + + REST + {" "} + &{" "} + + GraphQL + {" "} + API + + + Automatic documentation{" "} + + OpenAPI + + , SwaggerUI, GraphiQL... + + + Support for standards and formats{" "} + + JSON-LD + + ,{" "} + + Hydra + + , JSON:API + +
+

+ Alternatively,{" "} + + generate the classes from an existing RDF vocabulary + + . +
+
API Platform automatically exposes production-grade{" "} + + + HATEOAS + + {" "} + API for you! +

+
+ + Plug your business & persistence logic + + + + + +

+ The framework has been designed from the ground up to be usable from + Rapid Application Development contexts to{" "} + + Domain-Driven Design + {" "} + or Clean Architecture-like approaches. +

+

You can even mix both approaches!

+
+ +

+ ...or use the native integration with popular persistence libraries! +

+ + + +
+

+ API Platform can automatically{" "} + + retrieve + + ,{" "} + + persist + + ,{" "} + + paginate + {" "} + and{" "} + + validate + {" "} + data using the most popular database systems. +

+

+ + PostgreSQL + + ,{" "} + + MongoDB + + ,{" "} + + ElasticSearch + + , SQLite, MySQL, MariaDB, SQL Server and Oracle are supported{" "} + + out of the box + + . +

+
+ +

+ You can also make your own{" "} + + persistence system + + ! +

+
+ Customize! + +

+ Customize every single behavior thanks to our carefully designed + + {" "} + extension points + + . +

+
+
+
+ ); +} diff --git a/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx b/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx new file mode 100644 index 000000000..948997943 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/InstallCode.mdx @@ -0,0 +1,3 @@ +```bash +composer require api-platform/laravel +``` diff --git a/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx b/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx new file mode 100644 index 000000000..a94d3ddb4 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/InstallLaravelCode.mdx @@ -0,0 +1,4 @@ +```bash +composer create-project laravel/laravel my-api-platform-laravel-app +cd my-api-platform-laravel-app +``` diff --git a/pwa/app/(common)/components/timeline/laravel/Native.mdx b/pwa/app/(common)/components/timeline/laravel/Native.mdx new file mode 100644 index 000000000..db20dce79 --- /dev/null +++ b/pwa/app/(common)/components/timeline/laravel/Native.mdx @@ -0,0 +1,10 @@ +```php +namespace App\Models; + +use ApiPlatform\Metadata\ApiResource; +use Illuminate\Database\Eloquent\Model; + +#[ApiResource] + class Book extends Model + { + } diff --git a/pwa/app/(common)/components/timeline/Expose.mdx b/pwa/app/(common)/components/timeline/symfony/Expose.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Expose.mdx rename to pwa/app/(common)/components/timeline/symfony/Expose.mdx diff --git a/pwa/app/(common)/components/timeline/Install.mdx b/pwa/app/(common)/components/timeline/symfony/Install.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Install.mdx rename to pwa/app/(common)/components/timeline/symfony/Install.mdx diff --git a/pwa/app/(common)/components/timeline/Native.mdx b/pwa/app/(common)/components/timeline/symfony/Native.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Native.mdx rename to pwa/app/(common)/components/timeline/symfony/Native.mdx diff --git a/pwa/app/(common)/components/timeline/Plug.mdx b/pwa/app/(common)/components/timeline/symfony/Plug.mdx similarity index 100% rename from pwa/app/(common)/components/timeline/Plug.mdx rename to pwa/app/(common)/components/timeline/symfony/Plug.mdx diff --git a/pwa/data/con/2024/partners.ts b/pwa/data/con/2024/partners.ts index 319979e81..2075a42b9 100644 --- a/pwa/data/con/2024/partners.ts +++ b/pwa/data/con/2024/partners.ts @@ -57,13 +57,6 @@ const partners: Partner[] = [ rank: 2, highlight: true, }, - { - name: "Sweeek", - logo: "sweeek", - link: "https://www.codein.fr/", - rank: 2, - highlight: true, - }, { name: "Codein", logo: "codein", diff --git a/pwa/public/images/cover/laravel-back.svg b/pwa/public/images/cover/laravel-back.svg index c8b9c73ef..96a8a5d67 100644 --- a/pwa/public/images/cover/laravel-back.svg +++ b/pwa/public/images/cover/laravel-back.svg @@ -1 +1,234 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pwa/public/images/cover/laravel-front.svg b/pwa/public/images/cover/laravel-front.svg index 39f43be1c..6b4ee46f5 100644 --- a/pwa/public/images/cover/laravel-front.svg +++ b/pwa/public/images/cover/laravel-front.svg @@ -1,42 +1,42 @@ + viewBox="0 0 701.4 334.8" enable-background="new 0 0 701.4 334.8" xml:space="preserve"> - - + - + - + - + - + - + - + - + - + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - + + - - + + - - - + + + - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + - - + - + - + - - - - - - - - + + + + + + + + - - - + C358.3,199.7,361,191.9,362.8,182.1L362.8,182.1L362.8,182.1z"/> + + + - - + + - + - + - - + - + c3.5-6.7,5.3-15.5,5-24.9l0,0C428,100.5,426.1,92.8,423,86.7L423,86.7z"/> + - - + - - - - - - + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + c0.1,0.2,6.9,25.6,7.3,41.8c0.4,16.4-0.2,28-0.2,28.1l-0.1,1.5L533.2,331.3L533.2,331.3z"/> + - + c-2.8,4.9-18.4,7.9-38.3,12.4c-20.4,4.6-129.9,14.5-140.9,8.2C380.8,163.8,378.5,145.9,376.1,134.6L376.1,134.6z"/> - + C567.3,153.9,551.8,156.9,531.8,161.5L531.8,161.5z"/> - + - - - - - - - - - + + + + + + + + - - - - - + l0.2-0.4c0,0,0.5,0.3,2.3,0.6c2.9,0.5,37-1,38.8-1.6c1-0.5,2.9-3.1,4-4.7C338.6,166,339.1,162.9,334.4,159.4L334.4,159.4z + M290.7,154.5L290.7,154.5L290.7,154.5L290.7,154.5z"/> + + - - - - + + + + + + + + + + + + + - + + + + + diff --git a/pwa/public/images/cover/symfony-front.svg b/pwa/public/images/cover/symfony-front.svg index b0873579e..e0a086203 100644 --- a/pwa/public/images/cover/symfony-front.svg +++ b/pwa/public/images/cover/symfony-front.svg @@ -1,7 +1,7 @@ + viewBox="0 0 490.4 511.9" enable-background="new 0 0 490.4 511.9" xml:space="preserve"> - - - - - - - - @@ -73,10 +59,10 @@ c-7-14.4-20.2-29-25.6-41.9c3.8,19.9,9.4,38.1,12.7,59.9c-13.6-17-23.8-39.6-32.2-50.9c12.7,43,30.7,101.2,43.1,130.2 c1.8-20.4,15.3-41.4,40.1-18.8"/> - + - + - - @@ -198,4 +173,33 @@ + + + + + + + + + + + + + + + + + + + +