php 8

아는 만큼 보일지니

이전에 "대단한 PHP"란 글을 쓴적이 있다. 1년이 넘어선 지금, 우선 한가지 사실을 더 알았다. null이어도 동일하다. 즉 null 혹은 false인 벨류는 어떤 첨자로 엑세스를 하려 해도 null이 나온다. $a = null; // or false var_dump($a['anyIndex']); 최근에 리뷰중 아래와 같은 코드를 봤다. list($a, $b) = getSomeFunctionThatReturnArrayOrNull(...); 엄격한 검사를 요구하는(특히 세그폴이 잘나는) 언어를 쓰다보니 리턴값이 null일 때 문제가 없느냐고 질문하니 위의 이유로 인해 두 변수 모두 null로 셋팅이 잘 된다는 것이다. 즉 에러 케이스때 둘중 한 변수만 null 검사를 하면 구지 리턴값이 널인지 확인하고..

Leopard에서 Zend Debugging 하기

http://www.zend.com/forums/index.php?t=msg&goto=14058&S=fe276d5a44eb0605385298c10a840608 결론은 애플이 아파치를 정말 웹 공유용으로 만들어 줘서 익스텐션이 설치가 안된다는 것. 따라서 왕창 새로 깔아야 한다는 것이다. MAMP를 설치하는 것도 답일 수 있으나 왠지 Pro버전 돈내삼 하고 있어서 직접 설치해 보도록 하자. 해답을 찾는데 도움이 된 것은 PHP-GD 설치가 안된다는 글타래. http://discussions.apple.com/thread.jspa?messageID=5693097 그리고 간만에 옛날 프로젝트 돌려보려니 난리나서 GD 설치기를 올려준 블로거분 http://www.postal-code.com/binarycode/..

Professional Search Engine Optimization with PHP

http://www.amazon.co.jp/gp/product/0470100923/503-2159512-7057564 ISBN: 0470100923 or 978-0470100929 Wrox Press, Jaimie Sirovich and Cristian Darie 무려 한달만에 도착한 책, 아니 이 책이 발간 예정임을 안 것은 더 전일까나. 아무튼 일본의 골든위크에 택배사에서 해메다가 겨우 도착한 미국에서 온 책이다. 아침에 와서 이제 챕터 1 정도 가벼운 마음으로 본 상태에서의 Review. 지속적으로 SEO(Search Engine Optimization)를 해 온 사람이면 별 필요없는 가이드 북 정도랄까. 하지만 본인처럼 이세상에 고민할 것이 365만가지 이상 되는 사람이 그래도 SEO를 고려해야 ..

태터 제작 방법론

1.1 RC3을 출시하고는 (관련발표) 비가 그치기를 기다리면서 주절주절. 주로 내부 PHP 함수와 QA만을 전담하다 이번에 CSS와 JS까지 손보는 작업까지 하면서 나름대로 세운 기준들을 적어볼까 합니다. 1. Static과 Dynamic의 분리 이번에 사이드바 ajax 코드를 넣으면서 고민 되었던 것은 로딩 시간입니다. 최초 로딩이야 어쩔 수 없다지만 매번 10년씩 걸리면 문제가 생길 수 밖에 없죠. CSS도 커지고 JavsScript의 양도 데이터를 능가할 정도로 커졌습니다. 말 그대로 사이트가 2~3배 느려질 수 있는 요소입니다. JS와 관련해서는 좀 쓸데없이 함수를 부르는 경향이 커지더라도 스태틱한 JS 부분을 만들어 외부 파일로 빼는 것이 좋은 것 같습니다. PHP에서 생성해야 하는 JS부분도..

가비지 컬렉팅, Loosely type binding, 기타 등등

잡담 아는 사람은 안다는 티스토리 내부 개비(?) 작업중. 외형적으로는 별 차이가 없는 것으로 보이겠지만 내부적인 엄청난 코드 변화가 티스토리에 일어나고 있다. 내부 개발서버에 수십번의 커밋이 일어나고 있고 테스트 해야 하는 양도 엄청나다. 어제는 SQL문을 다중 서브쿼리까지 써 가며 몇몇 부분의 로직을 새로 작성하였고 특정 상황에서 동작하지 않는 기능을 디버깅 하기 위해 DOM 문서와 자바스크립트 문법을 펴 두고 몇시간을 해메이기도 했다. 뭐 괜히 이회사 왔다가 대학시절 한학기에 언어 4~5개 배우고 플젝하던 악몽이 다시 생각나기도 하는 시절이다. 이노무 PHP는 뭐이리 어려운 언어인지.. Loosely Type Binding Perl 혹은 PHP가 쉽다고 하는 사람들을 보면 정말 존경 스럽다. 아직 ..

개발 환경을 공개합니다.

밑에 코멘트를 보니 궁금하신 분들이 있으실 것 같아서.. 저를 제외한 다른 개발자 분들은 다른 툴들을 이용하고 있습니다만 저는 아래의 툴들을 이용해서 태터툴스 및 곁가지 프로젝트(?)들을 하고 있습니다. IDE - Visual Studio 2005 http://msdn.microsoft.com/vstudio/ 오랫동안 VC++ 개발자였다 보니 가장 익숙한 툴이 이것입니다. 프로젝트 관리도 편하고 속도도 빠르고 등등. PHP를 개발함에 있어 ecl~~~라는 IDE 환경도 유명합니다만 저같이 성질 급한 사람은 약간 쓰기 힘들더군요. PHP Environment - VS.PHP for VS2005 http://www.jcxsoftware.com/ MS의 VS2005는 공식적으로 PHP를 지원하지는 않습니다. ..

APM(Apache+PHP+MySQL)의 문제

APM이라고 한다면 웹서버를 Apache, 비지니스 레이어를 PHP로 하고 데이터는 MySQL을 사용하는 플랫폼이다. 주로 Linux를 OS Platform으로 이용하지만 Windows도 사용된다. 이 블로그에 사용되는 Tattertools도 APM을 기반으로 한다. 최근에 새로운 프로젝트를 기획하면서 양대 산맥이라 할 수 있는 APM과 ASP.NET(IIS + ASP + MS-SQL)를 비교 검토해 본적이 있는데 나름대로 각각 충분한 기능성을 보유하고 있고 ASP는 Platform가격이 비싸다는 정도로 APM이 약간 우세한 감이 없지 않으나 다른 측면에서 문제점을 가지고 있다고 보고 있다. 태터가 격고 있는 문제이기도 하고 프로젝트를 새로 시작할 때도 가장 걱정되는 문제이기도 하다. 쉬운것이 좋은 것인..

태터의 Migrator 개조하기

이번 TatterTools 1.02와 더불어 등장한 Migrator.php를 뜯어보자. 우선 주의할 것은 케릭터셋 변환을 위한 데이터가 들어 있어서 어정쩡한 에디터로 읽었다간 파일이 망가질 수 있다. 가능하면 UTF-8로 읽어 내기를 권장한다. 주의! 여기의 내용은 상당히 위험한 방법일 수 있기 때문에 어느정도 프로그래밍이 가능하고 특별한 처리를 하기 위한 상황에서만 실제 적용을 하기 바랍니다. 초보자를 위한 FAQ같은 것은 아닙니다. 또한.. 언제나 잊지 말것은 Backup! UTF 판별하기 함수 이전에 UTF8의 판별에 대해 적은 글이 있는데 그 방법의 결정판이 이 파일의 250번째줄 근처에 있는 isUTF8과 adjustUTF8 함수일 것이다. 허나 이 함수에서 주의할 점이 하나 있다. 나름대로 제..