최근 Livewire 3를 사용하면서 Alpine.js와 함께 이벤트를 주고받는 구조를 설계하는 경우가 많습니다.특히 모달, 토스트, 폼 CRUD 등에서 Livewire와 JS 간의 데이터 흐름을 정확히 이해해야 불필요한 오류를 줄이고 유지보수가 쉬워집니다.이번 글에서는 Livewire ↔ JS 간 이벤트 통신 구조와 데이터 타입 처리 방식을 단계별로 정리합니다.1. Livewire의 $this->dispatch()는 두 가지 역할을 한다Livewire v3의 dispatch() 메서드는 단일 함수지만, 송신 방향에 따라 동작이 달라집니다.구분 설명Livewire 이벤트다른 Livewire 컴포넌트로 서버 내부에서 전달브라우저 이벤트JS/Alpine으로 클라이언트 이벤트 전송// Livewire 간 통신..
우선 국내에서 최신 라라벨 호스팅 방법은 가상서버 호스팅이나 단독 서버를 이용해야 가능한 상황이다. 저렴한 php 웹호스팅은 대부분 Php5.x, Php7.x 만 지원하기 때문이다. 다행스럽게도 Cafe24 에서 Php8.2 이상의 버전을 지원하기 시작했다. 몇가지 수정을 통해서 Php8.4와 Laravel 을 세팅해 보자. 가장 저렴한 버전인 뉴아우토반 호스팅(450원/월)으로 세팅 과정을 진행해 본다. Cafe24 뉴아우토반 호스팅 기본사양1.6GB/일 트래픽 (약 48GB/월*)700MB SSD무제한 데이터베이스*https://hosting.cafe24.com/?controller=new_product_page&page=newautobahn 카페24 호스팅 | 온라인 비즈니스의 시작절약형..
AI 기반 코딩 에이전트가 Laravel 환경을 더 잘 이해하고, 더 정확한 코드를 생성하도록 돕는 ‘AI 코딩 스타터 키트 https://github.com/laravel/boost GitHub - laravel/boost: Laravel-focused MCP server for augmenting your AI powered local development experience.Laravel-focused MCP server for augmenting your AI powered local development experience. - laravel/boostgithub.com 설치하기기존 Laravel 프로젝트에 Laravel boost 패키지를 추가한다. (주의: db 가 연결되어 있어야 한다.)c..
Laravel 프로젝트를 진행할때 Livewire 를 적용할것인가에 대해서 잠깐 고민이 생긴다.Livewire 를 사용하지 않아도 프로젝틀 진행하는데 별다른 어려움이 없는데 말이다. 특히나 Alpine.js 와 항상 찰떡처럼 붙어다니는데 이번 정리글을 통해서 Livewrie 와 Alpine.js 를 확실하게 개념을 잡아보자. 개념잡기기억 공식: "x는 프론트, wire는 백엔드"Alpine.jsx-브라우저(프론트엔드)브라우저에서 즉시 반응. JS 역할.Livewirewire-서버(백엔드)서버와 통신 (Ajax), PHP 메서드 실행 x- 로 시작하면 클라이언트에서만 처리한다.wire: 서버를 한번 갔다 와야 한다. 암기 : wire는 서버로 "전선"을 연결해서 PHP 백엔드에 명령을 보내는 역할. Alp..
Laravel이 의존성 주입(Dependency Injection)을 효율적으로 관리하는 데 중심이 되는 도구 1. Service Container (서비스 컨테이너)Service Container는 객체를 생성하고 관리하는 Laravel의 강력한 도구입니다. 쉽게 말해, "필요한 클래스를 자동으로 만들어서 주입해주는 박스"라고 볼 수 있습니다. 회사에서 회의를 할 때, 커피가 필요하다고 가정해 봅시다.커피를 직접 만들기보다는, "커피를 주세요"라고 요청하면 알아서 커피가 옵니다.여기서:"커피 주세요"는 클래스 요청커피를 가져오는 직원은 Service Container커피 제조법은 Service Provider가 등록해둔 레시피Laravel에서는 __construct()에 클래스 타입을 지정하면, Ser..
AdminPanelProvider.php 에서 panel 에 다음 속성을 추가한다. ->sidebarWidth('200px') ->sidebarCollapsibleOnDesktop() Filament 에는 추가할 수 있는 많은 Plug 이 존재한다.https://filamentphp.com/plugins Plugins - FilamentCommunity made packages for Filament projects, which give you access to awesome new features.filamentphp.com 권한 설정에 유용한 Filament-Shield 패키지다.https://filamentphp.com/plugins/bezhansalleh-..
Laravel Pint (vendor/bin/pint) 설명Laravel Pint는 Laravel에서 공식적으로 제공하는 자동 코드 포매터(Auto Code Formatter) 입니다.PHP 코드 스타일을 자동으로 정리해주며, Laravel 및 PHP 커뮤니티에서 널리 사용되는 PSR-12 및 Laravel 코드 스타일을 준수합니다.Pint는 Laravel 팀에서 개발한 PHP 코드 스타일 교정 도구로, PHP-CS-Fixer를 기반으로 만들어졌습니다.기능 및 목적PHP 코드의 스타일을 자동으로 수정하여 일관된 코딩 스타일을 유지하도록 도와줍니다.PSR-12 및 Laravel 코딩 스타일 규칙을 기반으로 코드를 정리합니다.들여쓰기, 공백, 괄호, 배열 구문 등 코드의 형식을 일관되게 정리합니다.설정이 간..
개발PC에서 이메일 인증을 통한 회원가입시 메일 발송과 회원가입 링크를 확인해 보기 위해서 간단한 smpt 서비스 제공 https://mailpit.axllent.org/ Mailpit - email & SMTP testing toolMailpit - email & SMTP testing tool with API for developers Mailpit is a small, fast, low memory, zero-dependency, multi-platform email testing tool & API for developers. It acts as an SMTP server, provides a modern web interface to view & test captured emmailpit.ax..
들어가기도커를 이용한 라라벨 개발 세팅에 대해서 알아본다. Sail 을 이용해서 Docker 를 이용한 개발 명령어 - Create Laravel curl -s "https://laravel.build/example-app" | bash 참고 링크 : https://laravel.com/docs/11.x/installation#docker-installation-using-sail 기존 라라벨에 Sail 추가하는 방법composer require laravel/sail --devphp artisan sail:install./vendor/bin/sail up vendor/laravel/sail 폴더 GitHub clonesail 은 용량이 너무 크고 복잡하다. 아래는 직접 만든 좀더 심플한 버전이다.1..
intervention/image 패키지 설치composer require intervention/image 파일 수정vendor/archtechx/laravel-seo/src/Commands/GenerateFaviconsCommand.php // GD 드라이버 설정 방식 수정$manager = new ImageManager( driver: \Intervention\Image\Drivers\Gd\Driver::class); $this->comment('Generating ico...');$manager ->read($path) ->resize(32, 32) ->save(public_path('favicon.ico')); $this->comment('Generating png...'); $manager -..
폴더 구조를 간편하게 라우터로 변경하는 코드임.Route::get('/test/{foldername}/{filename}', function ($foldername, $filename) { return view('test.' . $foldername . '.' . $filename);})->name('test.dev'); @php$folder = "laravel";$path = $rootPath . "test/" . $folder;$pathname = "test." . $folder;$files = getFileName($path);@endphp@foreach ($files as $file ) {{ $file }} @endforeach
파일추가 하기touch database/database.sqlite .envAPP_MAINTENANCE_DRIVER=file# APP_MAINTENANCE_STORE=databaseDB_CONNECTION=sqlite# DB_HOST=127.0.0.1# DB_PORT=3306# DB_DATABASE=laravel# DB_USERNAME=root# DB_PASSWORD= config/database.php 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'url' => env('DATABASE_URL'), 'database' => env('DB_DATABASE', database_..