Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions php-framework/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

# next.js
/.next/
/out/

# production
/build

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
76 changes: 76 additions & 0 deletions php-framework/app/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;

--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;

--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;

--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;

--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;

--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;

--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;

--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;

--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;

--radius: 0.5rem;
}

.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;

--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;

--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;

--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;

--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;

--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;

--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;

--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;

--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
}
}

@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
25 changes: 25 additions & 0 deletions php-framework/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import type React from "react"
import "@/app/globals.css"
import { ThemeProvider } from "@/components/theme-provider"

export const metadata = {
title: "PHP Framework Generator",
description: "Generate PHP framework projects with custom configurations",
generator: 'v0.dev'
}

export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en" suppressHydrationWarning>
<body>
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
{children}
</ThemeProvider>
</body>
</html>
)
}
81 changes: 81 additions & 0 deletions php-framework/app/login/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import { LoginForm } from "@/components/login-form"
import { ThemeToggle } from "@/components/theme-toggle"
import { MobileNav } from "@/components/mobile-nav"
import Link from "next/link"

export default function LoginPage() {
const navItems = [
{ title: "Home", href: "/" },
{ title: "Documentation", href: "#" },
{ title: "Guides", href: "#" },
]

return (
<div className="min-h-screen bg-gradient-to-b from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-800">
<header className="border-b bg-white dark:bg-gray-950 dark:text-white sticky top-0 z-40 shadow-sm">
<div className="container mx-auto px-4 py-3 flex items-center justify-between">
<div className="flex items-center gap-2">
<Link href="/" className="flex items-center gap-2">
<div className="bg-red-500 w-8 h-8 rounded-md flex items-center justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="w-5 h-5 text-white"
>
<path d="M12 2v6.5" />
<path d="M19 5.5v4" />
<path d="M5 5.5v4" />
<path d="M12 17.5V22" />
<path d="M5 14.5v-3" />
<path d="M19 14.5v-3" />
<path d="M12 8.5a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z" />
</svg>
</div>
<h1 className="text-xl font-bold">PHP Framework Generator</h1>
</Link>
</div>
<nav className="hidden md:flex items-center gap-4">
<Link href="/" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Home
</Link>
<Link href="#" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Documentation
</Link>
<Link href="#" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Guides
</Link>
<ThemeToggle />
</nav>
<div className="flex md:hidden items-center gap-2">
<ThemeToggle />
<MobileNav items={navItems} />
</div>
</div>
</header>
<main className="container mx-auto px-4 py-6 md:py-12">
<div className="max-w-md mx-auto">
<div className="mb-6 md:mb-8 text-center">
<h2 className="text-2xl md:text-3xl font-bold mb-2 dark:text-white">Login to Your Account</h2>
<p className="text-sm md:text-base text-gray-600 dark:text-gray-400">
Access your PHP Framework Generator account
</p>
</div>
<LoginForm />
</div>
</main>
<footer className="border-t bg-white dark:bg-gray-950 py-4 md:py-6 mt-8">
<div className="container mx-auto px-4">
<div className="text-center text-xs md:text-sm text-gray-600 dark:text-gray-400">
<p>PHP Framework Generator is powered by Next.js</p>
<p className="mt-1">© {new Date().getFullYear()} PHP Framework Generator. All rights reserved.</p>
</div>
</div>
</footer>
</div>
)
}
98 changes: 98 additions & 0 deletions php-framework/app/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import { ProjectForm } from "@/components/project-form"
import { ProjectInfo } from "@/components/project-info"
import { ThemeToggle } from "@/components/theme-toggle"
import { MobileNav } from "@/components/mobile-nav"
import Link from "next/link"

export default function Home() {
const navItems = [
{ title: "Documentation", href: "#" },
{ title: "Guides", href: "#" },
{ title: "GitHub", href: "https://github.com", external: true },
{ title: "Login", href: "/login" },
]

return (
<div className="min-h-screen bg-gradient-to-b from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-800">
<header className="border-b bg-white dark:bg-gray-950 dark:text-white sticky top-0 z-40 shadow-sm">
<div className="container mx-auto px-4 py-3 flex items-center justify-between">
<div className="flex items-center gap-2">
<Link href="/" className="flex items-center gap-2">
<div className="bg-red-500 w-8 h-8 rounded-md flex items-center justify-center">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="w-5 h-5 text-white"
>
<path d="M12 2v6.5" />
<path d="M19 5.5v4" />
<path d="M5 5.5v4" />
<path d="M12 17.5V22" />
<path d="M5 14.5v-3" />
<path d="M19 14.5v-3" />
<path d="M12 8.5a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z" />
</svg>
</div>
<h1 className="text-xl font-bold">PHP Framework Generator</h1>
</Link>
</div>
<nav className="hidden md:flex items-center gap-4">
<Link href="#" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Documentation
</Link>
<Link href="#" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Guides
</Link>
<a
href="https://github.com"
target="_blank"
rel="noopener noreferrer"
className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400"
>
GitHub
</a>
<ThemeToggle />
<Link href="/login" className="text-sm font-medium hover:text-red-600 dark:hover:text-red-400">
Login
</Link>
</nav>
<div className="flex md:hidden items-center gap-2">
<ThemeToggle />
<MobileNav items={navItems} />
</div>
</div>
</header>
<main className="container mx-auto px-4 py-6 md:py-8">
<div className="max-w-5xl mx-auto">
<div className="mb-6 md:mb-8 text-center">
<h2 className="text-2xl md:text-3xl font-bold mb-2 dark:text-white">PHP Framework Project Generator</h2>
<p className="text-sm md:text-base text-gray-600 dark:text-gray-400">
Bootstrap your PHP application by selecting framework and configuration options
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8">
<div className="md:col-span-2">
<ProjectForm />
</div>
<div>
<ProjectInfo />
</div>
</div>
</div>
</main>
<footer className="border-t bg-white dark:bg-gray-950 py-4 md:py-6 mt-8">
<div className="container mx-auto px-4">
<div className="text-center text-xs md:text-sm text-gray-600 dark:text-gray-400">
<p>PHP Framework Generator is powered by Next.js</p>
<p className="mt-1">© {new Date().getFullYear()} PHP Framework Generator. All rights reserved.</p>
</div>
</div>
</footer>
</div>
)
}
21 changes: 21 additions & 0 deletions php-framework/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "app/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
Loading
Loading