이름
비밀번호
    메일
    제목
    내용
 
> 관리자님의 글

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분기 내로 업로드하겠습니다.

 
Since 2003-03-03 hosted on vultr.com