👣 레퍼런스
- WSL를 이용한 Ubuntu 환경
Laravel - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
laravel.com
- 아래는 php 설치만을 위해 남김
01. Window환경에서 Laravel 개발환경 구축
웹 사이트 개발에 앞서 먼저 윈도우에서 라라벨 개발환경 구축하는 방법에 다루기로 한다. 라라벨은 GUI환경보다는 CLI환경에 적합하므로(명령행 도구를 많이 씀) 윈도우에서 사용하기 불편하다.
rninche01.tistory.com
- php-cli 설치
apt install php-cli
- php artisan serve 중 오류 사항
1. composer를 이용해 의존성 설치
composer install
php artisan serve
2. composer install 중 오류사항
Your requirements could not be resolved to an installable set of packages.
Problem 1
- laravel/pint[v1.0.0, ..., v1.13.9] require ext-xml * -> it is missing from your system. Install or enable PHP's xml extension. - Root composer.json requires laravel/pint ^1.0 -> satisfiable by laravel/pint[v1.0.0, ..., v1.13.9].
- sudo apt-get install php-xml로 해결
Problem 1
- spatie/laravel-ignition[2.0.0, ..., 2.4.1] require ext-curl * -> it is missing from your system. Install or enable PHP's curl
extension.
- Root composer.json requires spatie/laravel-ignition ^2.0 -> satisfiable by spatie/laravel-ignition[2.0.0, ..., 2.4.1].
- sudo apt-get install php-curl로 해결
👣 프로젝트 생성
composer create-project laravel/laravel [플젝 이름]
👣 프로젝트 구조
.
├── .env # 글로벌 설정 중 민감한 값, dev/production 등 앱 실행환경에 따라 변경되어야 하는 값을 써 놓는 곳
├── app
│ ├── Console
│ │ ├── Commands # 콘솔 코맨드 하우징
│ │ └── Kernel.php # 콘솔 코맨드, 크론 스케쥴 등록
│ ├── Events # 이벤트 클래스 하우징
│ ├── Exceptions # Exception 하우징
│ │ └── Handler.php # 글로벌 Exception 처리 코드
│ ├── Listeners # 이벤트 핸들러
│ ├── Jobs
│ ├── Policies
│ ├── Http # Http 요청 처리 클래스들의 하우징
│ │ ├── Controllers # Http Controller
│ │ ├── Kernel.php # Http 및 Route 미들웨어 등록
│ │ ├── Middleware # Http 미들웨어 하우징
│ │ ├── Requests # Http 폼 요청 미들웨어 하우징
│ │ └── routes.php # Http 요청 Url을 Controller에 맵핑시키는 규칙을 써 놓은 테이블
│ └── Providers # 서비스 공급자 하우징 (config/app.php에서 바인딩 됨)
│ ├── AppServiceProvider.php
│ ├── AuthServiceProvider.php
│ ├── EventServiceProvider.php # 이벤트 리스너, 구독 바인딩
│ └── RouteServiceProvider.php # 라우팅 바인딩 (글로벌 라우팅 파라미터 패턴 등이 등록되어 있음)
├── composer.json # 이 프로젝트의 Composer 레지스트리, Autoload 규칙 등이 담겨 있다. (c.f. Node의 package.json)
├── config # database, queue, mail 등 글로벌 설정 하우징
├── database
│ ├── migrations # 데이터베이스 스키마
│ └── seeds # 생성된 테이블에 Dummy 데이터를 삽입하는 클래스들 (개발 목적)
├── gulpfile.js # Elixir (프론트엔드 빌드 자동화) 스크립트
├── public # 웹 서버에 의해 지정된 Document Root
├── resources
│ ├── assets # JavaScript, CSS 하우징
│ ├── lang # 다국어 지원을 위한 언어 레지스트리 하우징
│ └── views # 뷰 파일 하우징
├── storage # Laravel5 파일 저장소
└── vendor # composer.json의 저장소
- resources | HTML 템플릿 디렉토리
- database | DB 관련 디렉토리
- public | Document Root
- vendor | 의존성 디렉토리
- composer.json | = Node.js의 package.json
- .env | 환경 변수 관리 파일
- routes | 라우팅
'php' 카테고리의 다른 글
Blade Template 기초 (0) | 2024.01.20 |
---|---|
Laravel 라우트 (0) | 2024.01.20 |