UI(네이티브 UI)
UI(네이티브 UI)
PHP로 데스크톱용 네이티브 UI를 만들어야 한다면 UI 확장이 후보가 돼요. UI 확장은 libui를 감싸서, 네이티브한 느낌(룩앤필)의 사용자 인터페이스를 크로스 플랫폼으로 개발할 수 있는 객체 지향 API를 제공해요.
출처: UI
본문
경고: 이 확장은 실험적(EXPERIMENTAL) 상태예요. 이 확장의 동작은 함수 이름을 포함해 향후 PHP 릴리스에서 예고 없이 바뀔 수 있고, 사용에 따른 책임은 개발자 본인에게 있어요.
UI 확장은 창·컨트롤·메뉴·드로잉을 아우르는 여러 네임스페이스로 구성돼요.
기본 구조 (UI\ 네임스페이스)
- UI\Window — 창을 나타내는 클래스예요.
show되지 않은 창을 만들고 크기·제목·테두리·여백을 지정하며, 메시지 박스(msg), 오류 박스(error), 열기/저장 다이얼로그(open,save)를 띄울 수 있어요. - UI\Control — 모든 컨트롤의 기반 클래스예요.
show/hide,enable/disable,setParent등을 제공해요. - UI\Menu / UI\MenuItem — 메뉴와 메뉴 항목을 만들어요.
- UI\Area — 직접 그리기(draw) 영역으로, 마우스·키·드로잉 콜백을 지원해요.
- UI\Executor — 실행 스케줄러로 콜백을 예약·반복 실행해요.
- UI\Point / UI\Size — 좌표(x, y)와 크기(width, height)를 나타내는 값 타입이에요.
컨트롤 (UI\Controls\ 네임스페이스)
다양한 컨트롤이 준비되어 있어요.
Tab,Check,Button,ColorButton,Label,Entry,MultilineEntry,Spin,Slider,Progress,Separator,Combo,EditableCombo,Radio,Picker- 배치(arrangement):
Form,Grid,Group,Box
각 컨트롤은 대체로 __construct, 값을 읽거나 쓰는 getter/setter, 그리고 상태 변화를 알리는 콜백(onClick, onChange, onToggle 등)으로 이루어져요.
드로잉 (UI\Draw\ 네임스페이스)
면적(Area)에 그림을 그리기 위한 클래스들이에요.
UI\Draw\Pen— 경로를 채우고(fill), 윤곽을 그리고(stroke), 텍스트를 씁니다(write)UI\Draw\Path— 사각형·선·호·베지어 곡선으로 도형을 구성해요UI\Draw\Matrix— 회전·크기 조절·이동·기울이기 같은 변환을 적용해요UI\Draw\Color,UI\Draw\Stroke,UI\Draw\Brush(+ Gradient 계열) — 색·선·채우기 브러시를 나타내요UI\Draw\Text\Layout,UI\Draw\Text\Font(+ Descriptor) — 텍스트 배치와 글꼴을 다뤄요
UI 함수·상수
UI\run— UI 이벤트 루프에 진입해요UI\quit— UI 루프를 종료해요UI\Draw\Text\Font\fontFamilies— 사용 가능한 글꼴 패밀리 목록을 가져와요- 상수:
UI\Draw\Text\Font\Weight,UI\Draw\Text\Font\Italic,UI\Draw\Text\Font\Stretch,UI\Draw\Line\Cap,UI\Draw\Line\Join,UI\Key - 예외:
UI\Exception\InvalidArgumentException,UI\Exception\RuntimeException
더 알아보기
설치 요구 사항은 Installing/Configuring 문서를 확인해 보세요. 각 클래스와 메서드의 구체적인 사용법은 클래스별 레퍼런스 문서에서 이어서 보시면 돼요. 다만 확장 상태가 실험적이므로 실제 프로젝트에 도입하기 전에 이 점을 꼭 감안하세요.