saaksin/laravel-administrator is a Laravel package for 데이터베이스 기반 라라벨 관리자 페이지.
It currently has 1 GitHub stars and 110 downloads on Packagist (latest version 13.0.1).
Install it with composer require saaksin/laravel-administrator.
Discover more Laravel packages by saaksin
or browse all Laravel packages to compare alternatives.
Last updated
기존 FrozenNode의 Laravel-Administrator 패키지가 더 이상 업데이트되지 않아, 이를 바탕으로 Laravel 13 및 최신 프론트엔드 아키텍처 환경에 맞춰 개발하고 있는 관리자 페이지 빌더 패키지입니다.
Administrator를 사용하면 Eloquent 모델과 관계(Relations)를 선언적으로 관리할 수 있으며, 독립적인 사이트 설정 페이지나 대시보드 커스텀 작업을 손쉽게 구축할 수 있습니다.
13.0.113.0.1은 Laravel 13 전용 지원 범위를 유지하면서 Laravel Octane의 장기 실행 워커에서도 관리자 요청 상태가 서로 섞이지 않도록 요청 생명주기를 격리합니다. PHP-FPM 환경에서도 동일한 기능과 호환성을 유지합니다.
laravel/octane을 추가하지 않으며 PHP-FPM도 계속 지원합니다.web 세션 미들웨어 이후 매 요청 적용하며, 세션 값이 없거나 허용되지 않으면 config('app.locale')로 복원합니다.administrator.ready는 애플리케이션 또는 워커 부트 시 한 번 발생하므로 요청별 상태 초기화에 사용하지 않습니다.Octane을 사용하는 애플리케이션은 패키지 코드나 설정을 배포한 뒤 실행 중인 워커를 다시 불러와야 합니다.
php artisan octane:reload
기본 silver 테마와 스타일을 추가하지 않는 legacy 테마를 제공하며, Vite manifest의 테마 엔트리를 기준으로 배포 에셋을 로드합니다.
Knockout.js 및 jQuery 환경을 완전히 제거하고, 가볍고 빠른 Alpine.js v3와 유연한 Tailwind CSS, 현대적 에셋 번들러인 Vite 체계로 마이그레이션했습니다.Select2 대신 Alpine.js 기반의 경량 커스텀 Combobox 컴포넌트를 사용하여 관계형 데이터 자동완성 검색을 제공합니다.Plupload 대신 HTML5 기본 API를 활용한 바닐라 멀티 업로더를 탑재했습니다.wysiwyg2) 및 Marked(마크다운 파서) 라이브러리로 대체하고, 기존의 클래식한 CKEditor 4(wysiwyg, Full 스펙) 역시 로컬 번들로 함께 제공하여 목적에 맞게 두 에디터 중 선택해서 적용할 수 있는 유연한 환경을 제공합니다.^13.0^8.3^2.0을 사용하는 RoadRunner, Swoole 또는 FrankenPHP 호스트 환경^11.0, PHPUnit ^11.013.0.1은 Laravel ^13.0과 PHP ^8.3만 지원합니다. Octane을 설치하지 않은 PHP-FPM 환경도 정상 지원합니다.
Composer를 사용하여 Laravel 13 애플리케이션에 설치할 수 있습니다.
composer require "saaksin/laravel-administrator:^13.0"
설치 후, config/app.php 의 providers 배열에 서비스 프로바이더를 등록합니다.
'providers' => [
...
SaAkSin\Administrator\AdministratorServiceProvider::class
]
이 후, 서비스 프로바이더 기준 publish 명령을 실행합니다.
php artisan vendor:publish --provider="SaAkSin\Administrator\AdministratorServiceProvider" --force
config/administrator.php 설정파일이 추가 되고, public 디렉토리에 관련 에셋(CKEditor 4 에셋 포함), 뷰, 언어 파일 등이 복사됩니다.
[!IMPORTANT]
설정 파일들은 config 디렉토리 하위가 아닌, 프로젝트 루트 디렉토리의administrator/,administrator/settings/에 위치합니다.
mkdir -p administrator/settings
라라벨의 설정 캐싱(php artisan config:cache) 기능을 오류 없이 100% 안전하게 사용하고 글로벌 함수 선언 충돌을 완벽히 차단하기 위해, 순수 PHP 배열 반환 구조(return [ ... ];)를 사용해 주십시오. (레거시 하위 호환을 위해 파일명과 일치하는 글로벌 함수 래핑 방식 function users() { ... }도 지원하지만 권장하지 않습니다.)
// administrator/users.php (권장 방식)
return array(
'title' => '사용자 관리',
'single' => '사용자',
'model' => App\Models\User::class,
// 데이터 목록에 노출할 컬럼 정의
'columns' => array(
'id' => array(
'title' => 'ID',
),
'name' => array(
'title' => '이름',
),
'email' => array(
'title' => '이메일',
),
),
// 데이터 필터링 조건 정의
'filters' => array(
'name' => array(
'title' => '이름 검색',
'type' => 'text',
),
),
// 등록 및 수정 폼 필드 구성
'edit_fields' => array(
'name' => array(
'title' => '이름',
'type' => 'text',
),
'email' => array(
'title' => '이메일',
'type' => 'text',
),
'password' => array(
'title' => '비밀번호',
'type' => 'password',
),
),
);
config/administrator.php 에 테마 및 커스텀 에셋 항목을 추가하여 레이아웃을 확장할 수 있습니다.
// 활성화할 테마 설정 (기본값: 'silver')
'theme' => 'silver',
// 지원하는 테마 및 에셋 매핑 정의 (레거시 테마는 추가 스타일을 로드하지 않음)
'themes' => array(
'silver' => array(
'label' => '실버',
'entry' => 'resources/css/themes/silver.css',
),
'legacy' => array(
'label' => '레거시',
'entry' => null,
),
),
// 추가로 로드할 사용자 정의 스타일시트 (테마 스타일 이후 로드됨)
'custom_css' => array(
'custom' => asset('css/custom.css'),
),
// 추가로 로드할 사용자 정의 자바스크립트 (앱 메인 스크립트 이후 로드됨)
'custom_js' => array(
'custom' => asset('js/custom.js'),
),
app/Providers/AppServiceProvider.php 에서 라우트의 경로가 https 가 되도록 지정합니다.
use Illuminate\Routing\UrlGenerator;
public function boot(UrlGenerator $url)
{
if (app()->environment('production')) {
$url->forceScheme('https');
}
}
asset url 에 https 주소를 사용하도록 .env 에 ASSET_URL 을 지정합니다.
ASSET_URL=https://도메인주소
filter 에서 MySQL 의 full text 검색을 지원합니다. (대용량 테이블 검색에 유리합니다.)
'filters' => array(
'no' => array(
'title' => 'Number',
'type' => 'fulltext_mysql'
),
),
filter 에서 시작 단어 검색 및 포커스 아웃 이벤트 시 즉시 검색을 시작하는 유용한 필터 타입입니다.
'filters' => array(
'no' => array(
'title' => 'Name',
'type' => 'text_quick'
),
),
액션을 성공적으로 실행한 후, 현재 페이지를 리로드하는 기능을 제공합니다.
'action' => array(
'reload' => true
),
모델 설정에서 view 모델 여부를 설정할 수 있습니다. (아직은 실험적인 기능이며, 조회 시 데이터베이스 로드를 최적화하여 약간의 성능 개선을 기대할 수 있습니다. MySQL InnoDB 환경 권장)
'view' => true
13.0.1은 Laravel ^13.0과 PHP ^8.3만 지원하며, 이 범위를 벗어난 런타임은 지원하지 않습니다. PHP-FPM과 호스트가 선택적으로 설치한 Laravel Octane 2.x 실행 환경을 지원합니다.
패키지의 프론트엔드 소스코드(resources/js, resources/css 등)를 직접 수정하여 기여하거나 커스터마이징하고 싶다면 패키지 루트 디렉토리에서 다음 NPM 명령어를 활용해 주세요.
# 의존성 설치
npm install
# Vite 개발 서버 실행 (핫 리로드 지원)
npm run dev
# 배포용 최적화 에셋 빌드 (public/dist 디렉토리에 빌드됨)
npm run build
Administrator 공식 문서는 https://administrator.artgrammer.co.kr에서 확인할 수 있습니다. 이 패키지의 루트 디렉토리에 있는 docs/ 디렉토리에서도 한국어 설명 문서를 포함한 상세 가이드를 찾아볼 수 있습니다.
Administrator was written by Jan Hartigan of Frozen Node for the Laravel framework.
It is currently developed, modernized, and maintained by GiSeok Lee (SaAkSin).
Administrator is released under the MIT License. See the LICENSE file for details.
변경 이력은 changelog.md를 기준으로 관리합니다. 13.0.1의 배포 요약과 승인 체크리스트는 RELEASE_NOTES.md에서 확인할 수 있습니다.