7.9 KiB
Using php artisan core:new
The core:new command scaffolds a new Core PHP Framework project, similar to laravel new.
Quick Start
# Create a new project
php artisan core:new my-project
# With custom template
php artisan core:new my-api --template=host-uk/core-api-template
# Skip installation (manual setup)
php artisan core:new my-project --no-install
Command Reference
Basic Usage
php artisan core:new {name}
Arguments:
name- Project directory name (required)
Options:
--template=- GitHub template repository (default:host-uk/core-template)--branch=- Template branch to use (default:main)--no-install- Skipcomposer installandcore:install--dev- Install with--prefer-sourcefor development--force- Overwrite existing directory
Examples
1. Standard Project
Creates a full-stack application with all Core packages:
php artisan core:new my-app
cd my-app
php artisan serve
Includes:
- Core framework
- Admin panel (Livewire + Flux)
- REST API (scopes, webhooks, OpenAPI)
- MCP tools for AI agents
2. API-Only Project
php artisan core:new my-api \
--template=host-uk/core-api-template
Includes:
- Core framework
- core-api package
- Minimal routes (API only)
- No frontend dependencies
3. Admin Panel Only
php artisan core:new my-admin \
--template=host-uk/core-admin-template
Includes:
- Core framework
- core-admin package
- Livewire + Flux UI
- Auth scaffolding
4. Custom Template
Use your own or community templates:
# Your own template
php artisan core:new my-project \
--template=my-company/core-custom
# Community template
php artisan core:new my-blog \
--template=johndoe/core-blog-starter
5. Specific Version
Lock to a specific template version:
php artisan core:new my-project \
--template=host-uk/core-template \
--branch=v1.0.0
6. Manual Setup
Create project but skip automated setup:
php artisan core:new my-project --no-install
cd my-project
composer install
cp .env.example .env
php artisan key:generate
php artisan core:install
Useful when you want to:
- Review dependencies before installing
- Customize composer.json first
- Set up .env manually
7. Development Mode
Install packages with --prefer-source for contributing:
php artisan core:new my-project --dev
Clones packages as git repos instead of downloading archives.
What It Does
When you run php artisan core:new my-project, it:
- Clones template from GitHub
- Removes .git to make it a fresh repo
- Updates composer.json with your project name
- Installs dependencies via Composer
- Runs core:install to configure the app
- Initializes git with initial commit
Project Structure
After creation, your project will have:
my-project/
├── app/
│ ├── Console/
│ ├── Http/
│ ├── Models/
│ └── Mod/ # Your modules go here
├── bootstrap/
│ └── app.php # Core packages registered
├── config/
│ └── core.php # Core framework config
├── database/
│ ├── migrations/ # Core + your migrations
│ └── seeders/
├── routes/
│ ├── api.php # API routes (via core-api)
│ ├── console.php # Artisan commands
│ └── web.php # Web routes
├── .env
├── composer.json # Core packages required
└── README.md
Next Steps After Creation
1. Start Development Server
cd my-project
php artisan serve
Visit: http://localhost:8000
2. Access Admin Panel
# Create an admin user
php artisan make:user admin@example.com --admin
# Visit admin panel
open http://localhost:8000/admin
3. Create a Module
# Full-featured module
php artisan make:mod Blog --all
# Specific features
php artisan make:mod Shop --web --api --admin
4. Configure API
# Generate API key
php artisan api:key-create "My App" --scopes=posts:read,posts:write
# View OpenAPI docs
open http://localhost:8000/api/docs
5. Enable MCP Tools
# List available tools
php artisan mcp:list
# Test a tool
php artisan mcp:test query_database
Troubleshooting
Template Not Found
Error: Failed to clone template
Solution: Verify template exists on GitHub:
# Check if template is public
curl -I https://github.com/host-uk/core-template
# Use HTTPS URL explicitly
php artisan core:new my-project \
--template=https://github.com/host-uk/core-template.git
Composer Install Fails
Error: Composer install failed
Solution: Install manually:
cd my-project
composer install --no-interaction
php artisan core:install
Directory Already Exists
Error: Directory [my-project] already exists!
Solution: Use --force or choose different name:
php artisan core:new my-project --force
# or
php artisan core:new my-project-v2
Git Not Found
Error: git command not found
Solution: Install Git:
# macOS
brew install git
# Ubuntu/Debian
sudo apt-get install git
# Windows
# Download from https://git-scm.com
Template Repositories
Official Templates
| Template | Purpose | Command |
|---|---|---|
host-uk/core-template |
Full-stack (default) | php artisan core:new app |
host-uk/core-api-template |
API-only | --template=host-uk/core-api-template |
host-uk/core-admin-template |
Admin panel only | --template=host-uk/core-admin-template |
host-uk/core-saas-template |
SaaS starter | --template=host-uk/core-saas-template |
Community Templates
Browse templates: https://github.com/topics/core-php-template
Create your own: See CREATING-TEMPLATE-REPO.md
Environment Configuration
After creation, update .env:
# App Settings
APP_NAME="My Project"
APP_URL=http://localhost:8000
# Database
DB_CONNECTION=sqlite
DB_DATABASE=database/database.sqlite
# Core Framework
CORE_CACHE_DISCOVERY=true
# Optional: CDN
CDN_ENABLED=false
CDN_DRIVER=bunny
Comparison to Other Tools
vs laravel new
Laravel New:
laravel new my-project
# Creates: Basic Laravel app
Core New:
php artisan core:new my-project
# Creates: Laravel + Core packages pre-configured
# Admin panel, API, MCP tools ready to use
vs composer create-project
Composer:
composer create-project laravel/laravel my-project
composer require host-uk/core host-uk/core-admin ...
# Manual: Update bootstrap/app.php, config files, etc.
Core New:
php artisan core:new my-project
# Everything configured automatically
Contributing
Create Your Own Template
- Fork
host-uk/core-template - Customize for your use case
- Enable "Template repository" on GitHub
- Share with the community!
See: CREATING-TEMPLATE-REPO.md for full guide
FAQ
Q: Can I use this in production? Yes! The template creates production-ready applications.
Q: How do I update Core packages?
composer update host-uk/core-*
Q: Can I create a template without GitHub? Currently requires GitHub, but you can specify any git URL:
--template=https://gitlab.com/my-org/core-template.git
Q: Does it work with Laravel Sail? Yes! After creation, add Sail:
cd my-project
php artisan sail:install
./vendor/bin/sail up
Q: Can I customize the generated project? Absolutely! After creation, it's your project. Modify anything.
Support
- Documentation: https://github.com/host-uk/core-php
- Issues: https://github.com/host-uk/core-template/issues
- Discussions: https://github.com/host-uk/core-php/discussions
Happy coding with Core PHP Framework! 🚀