|
|
|
|
|
|
|
|
|
|
|
|
|
|
글쓴사람 | 관리자 |
글쓴시간 | 2023년 1월 18일 오전 5시 1분 7초 |
제목 | [컬럼] Tplus = PHP 뷰 영역의 서버사이드 언어 |
|
|
PHP 웹개발에 있어서
뷰 영역에 별도의 언어가 필요하다고 느끼는 이유는 무엇이며
뷰 언어에 요구되는 조건들이 있다면 무엇이고 Tplus는 어떻게 만족하고 있을까.
그리고 앞의로의 과제.
이렇게 이야기하려고 합니다
PHP 특징은
장구한 역사,
안정되고 강력한 젠드엔진,
이제는 컴파일 언어와 구분이 안되는 몸집.
여전히 어쩔 수 없는 더티함.
프로그래밍 언어들은 무엇이 왜 좋은지 혹은 안 좋은지
서로에게 배워가며 변화합니다. 구경해보면 너무 재미있습니다.
PHP 뷰 언어에 필요한 기본 요건은
1. 객체지향, 2. 펑셔널 패러다임, 3. 표준문법, 4. 마크업언어
Tplus는 이걸 클린 심플하게 제공한다고 생각합니다.
1. 객체지향
[= {6,7,8}.average()]
7
객체지향이란 기본적으로 데이터(=객체)가 주인공이고
해당 데이터 타입에 할 수 있는 연산(=메소드) 을 붙여서
코드를 구성하면 좋다는 이야기일 겁니다.
[="abcde".shuffle().toUpper()]
BCEDA
2. 펑셔널 패러다임
책을 읽기는 했는데 별로 기억이 안나고
버그의 원천 중의 하나는 변수다.
변수를 만들거나 변수값을 바꾸는 코드는 버그를 발생시킬 수 있다.
요즘 언어들은 바뀔리 없는 데이터라면 그렇다고 타입선언을 할 수 있게 해줍니다.
(상수랑 뭐가 다른거지?)
뷰 영역은 백엔드에서 전달 받은 데이터를 변경하지 않고
전부 불변식(immutable)으로 활용합니다.
변수의 값 자체를 바꾸는 일이 없습니다
가능한 메소드로 좀 꾸미는 일을 하고 출력하는게 전부입니다.
3. 표준문법
하자가 없다면 많은 사람들이 알고 사용하는 문법이 표준문법 아닐까요.
Tplus는 컬렉션으로 JSON 형식을 채택했는데
PHP쪽에서는 {} 와 [] 구분이 의미가 없어서
{} [] 아무거나 써도 되게 해놓았습니다.
4. 마크업언어
뷰 영역은 클래스를 선언하거나 무거운 코딩하는 곳이 아니고
서버사이드 언어는 조연으로서 태그 형식으로 존재해야 합니다.
클라이언트 사이드 프레임워크와 충돌하지 않아야 하고
서버사이드답게 [ ] 대괄호를 태그로 선택했고
템플릿언더바로부터 이어받은 명령어 다섯 개 중 하나가 붙었을 때
Tplus 태그가 됩니다
[= ][@ ] [? ] [: ] [/]
5. 남은 과제
런타임에러처리, 디버깅환경개선, 유닛테스트첨부, vscode용 플러그인
할 일이 많은데 지금도 템플릿언더바 때보다는 훨씬 좋습니다.
정식버전은 23년 1분기 내로 업로드하겠습니다.
|
|
|
초보 |
기존 프로젝트에 사용되었던 템플릿 언더바를 tplus 베타로 교체해서 기능 구현하는데 문제는 없을까요? 정식버전으로 작업하면 너무 좋겠지만 기한이 있는 프로젝트라서요 ㅠㅠ |
23-01-18 11:03 |
|
|
|
관리자 |
템플릿언더바에 있던 기능(설명서 4,5)들이 많이 제외되었기도 하고 새 프로젝트나 개인 프로젝트에 적용하시는 편이 좋을 거 같습니다. |
23-01-18 12:02 |
|
|
|
베르사체 |
기대됩니다. |
23-02-09 16:24 |
|
|
|
관리자 |
열심히 하겠습니다 |
23-02-09 18:09 |
|
|
|
|
|
|
|
|
|
|