다음과 같은 딜레마가 있습니다. 나는 복잡한 CMS를 가지고 있으며이 CMS는 그래픽 디자이너가 주제로 삼아야합니다. 템플릿은 몇 가지 중첩 된 흠도가있는 일반 HTML입니다. 디자이너가 페이지의 HTML을보고 수정할 파일을 쉽게 찾을 수 있도록하고 싶습니다.PHP 매크로/인라인 함수 (변수가 범위를 벗어나지 않도록)
function customInclude($what) {
print("<!-- Including $what -->");
include($what);
print("<!-- End of $what -->");
}
하지만, 무엇을 생각 : 내가 처음에 생각했던
이런 멍청한 짓을 구축했다? 변수는 분명히 포함 된 파일의 범위를 벗어납니다 :-) 나는 그들이 어떻게 호출되는지, 얼마나 많이 있는지를 모르기 때문에 그것들을 전역 변수 또는 매개 변수로 선언 할 수 없습니다.
PHP에서 "매크로 확장"을 구현할 수 있습니까? 그것을 호출하는 또 다른 방법은 aspect 지향 스타일에서 modify 함수의 각 호출을 수정하고 싶습니다.
나는 eval()에 대해 생각해 왔으며, 유일한 방법입니까? 성능에 큰 영향을 미칩니 까?
이것은 답변이 아니며, 전혀 도움이되지 않았습니다. 다음 번에 주석을 사용하십시오. 어쨌든, 당신은 다른 사람들이 무엇을지지하지 않고 말하는 것을 반복하고 있습니다. 그건 그렇고, 이것은 꽤 복잡한 MVC 구현이지만,이 질문은 완전히 다른 성격입니다. 그래픽 디자이너의 관점에서 보자면 아키텍처는 관련성이 없습니다. 단지 아파치 리디렉션, 라우트, 컨트롤러, 뷰, 매개 변수, 아약스 호출 등을 고려하지 않고 디스크의 특정 파일에 빠르게 액세스하려고합니다. URL을 보는 것만으로 출력물이 너무 복잡합니다. – Palantir
진심이야? 솔루션이 없으면 여전히 대답입니다. 그러나, 나는 다른 사람에 대해서 이야기하는 것이 아니 었습니다 - 당신이 OOP없이 문제가되는 것은 당신입니다. 그것은 당신의 부름이지만 eval을 사용하여 명백한 언어 동작을 우회하려고하지 마십시오. 게다가 나는 여기서 다른 사람이 응답하는 것을 거의 볼 수 없다. MVC 아키텍처는 템플릿과 코드가 각각 속한 코드를 분리하므로 디자이너는 코드를 볼 필요가 없으며 그 반대도 마찬가지입니다. –
더 자세히 읽어보십시오. 나는 OOP와 MVC를 사용하고 있다고 말했다. 일련의 뷰 (예 : node/edit.tpl.php, node/index.tpl.php 등)가 있고, 부분 뷰가 있는데, 나머지 부분 뷰가 차례로 호출됩니다. 나는 디자이너가보기 파일을 빨리 찾을 수 있도록 도와 주려고했다. 이게 터무니없는 것 같니? 다른 "깨끗한"옵션은 각보기의 맨 위에 그 이름을 넣고 밑에서 닫는 것입니다 ... – Palantir