About XHP and how to install on Mac OS X
XHP란 Facebook에서 개발한 PHP Extention이다. 자세한 설명은 아래 링크 참조..^^
첫째, 가독성이 좋은 PHP코드를 개발할 수 있다.
예를 들면
보통 이렇게 프로그래밍 하게 되는데 빨갛게 표시한 부분 때문에 머리가 아프다. 하지만 이것을 XHP를 사용해서 개발하면 아래처럼 된다.
echo문을 사용해서 가독성이 많이 좋아 졌다. XHP가 HTML 문법을 이해할 수 있기 때문에 가능하다.
두번째로, 컴파일 타임에 HTML에 문제가 있으면 에러를 발생시키기 때문에 잘못된(malformed or invalid) HTML 문서가 서비스 되는 것을 막을 수 있다. XHP가 만든 HTML 문서는 항상 well-formed document 이다.
이것은 잘못된 HTML 인데 XHP를 사용하면 아래와 같은 에러를 발생시킨다.
MacPort로 apache2와 php5 를 설치.(Mac의 웹공유는 끈다.)
아래 링크에 누군가가 친절하게 설명해 두었다.
XHP 소스 코드를 아래 링크에서 받는다.
/opt/local/etc/php5/php.ini-development 파일을 php.ini 로 이름을 바꾸고
http://durl.kr/772rmXHP를 사용하면
첫째, 가독성이 좋은 PHP코드를 개발할 수 있다.
예를 들면
<?php
if ($_POST['name']) {
?>
<span>Hello, <?=$_POST['name']?>.</span>
<?php
} else {
?>
<form method="post">
What is your name?<br>
<input type="text" name="name">
<input type="submit">
</form>
<?php
}
보통 이렇게 프로그래밍 하게 되는데 빨갛게 표시한 부분 때문에 머리가 아프다. 하지만 이것을 XHP를 사용해서 개발하면 아래처럼 된다.
<?php
// note: includes omitted
if ($_POST['name']) {
echo <span>Hello, {$_POST['name']}</span>;
} else {
echo
<form method="post">
What is your name?<br />
<input type="text" name="name" />
<input type="submit" />
</form>;
}
echo문을 사용해서 가독성이 많이 좋아 졌다. XHP가 HTML 문법을 이해할 수 있기 때문에 가능하다.
두번째로, 컴파일 타임에 HTML에 문제가 있으면 에러를 발생시키기 때문에 잘못된(malformed or invalid) HTML 문서가 서비스 되는 것을 막을 수 있다. XHP가 만든 HTML 문서는 항상 well-formed document 이다.
<?php
require 'php-lib/init.php';
$href = 'http://www.facebook.com';
echo <a href={$href}><b>Facebook</a></b>;
이것은 잘못된 HTML 인데 XHP를 사용하면 아래와 같은 에러를 발생시킨다.
Parse error: syntax error, mismatched tag , expecting in /Users/simpnet2/Projects/www/index.php on line 4<설치 방법>
MacPort로 apache2와 php5 를 설치.(Mac의 웹공유는 끈다.)
아래 링크에 누군가가 친절하게 설명해 두었다.
http://2tbsp.com/content/install_apache_2_and_php_5_macports
XHP 소스 코드를 아래 링크에서 받는다.
https://github.com/facebook/xhp
/opt/local/bin/phpize #port로 PHP를 설치했다.
configure
make
sudo make install
/opt/local/etc/php5/php.ini-development 파일을 php.ini 로 이름을 바꾸고
extension=xhp.so
를 추가한다.
php --ini 를 실행하면 어떤 php.ini 파일을 가져오는지 확인할 수 있다.
php -r 'echo "XHP!\n"; exit; <a />;'
를 실행해서 에러없이 출력되는지 확인한다.
XHP를 clone 받은 디렉토리에서 php-lib 디렉토리를 복사해서 서버 홈 디렉토리에 붙혀 넣는다.
그리고 홈디렉토리에 index.php 파일을 생성해서
<?php
require 'php-lib/init.php';
$href = 'http://www.facebook.com';
echo <a href={$href}>Facebook</a>;
를 입력하고 저장한다. 그리고 브라우저에서 잘 뜨는지 확인해 본다.
만약
Strict Standards: Static function xhp_x__base::__xhpAttributeDeclaration() should not be abstract in ...
어쩌고 하는 에러가 발생하면 php.ini 파일을 열어서
error_reporting = E_ALL & ~E_DEPRECATED
으로 바꿔준다.
댓글
댓글 쓰기