php와 html가 혼합된 코드를 읽기 쉽게 짜는 노하우는?

jiee의 이미지

요즘 웹프로그래밍을 시작했는데,
php코드를 짜다보면 html코드와 혼합되는 부분이 왕왕있습니다.

아직 좋은 방안이 없는터라,
html소스보다는 php코드의 관점에서 html을 삽입하여 사용합니다.

여러분 중 php코드에 html을 보기좋게 삽입하는 노하우를
(특히, html코드가 한 줄로 길 경우가 난감합니다.)

아시는 분은 공유해주시면 감사하겠습니다.

그럼, 즐거운 주말을 위해 Go Go~ : )

ps. 소스가 길어지면 php코드에서 html의 인덴트 위치를 찾기도 힘들더군요. -_-a

lacovnk의 이미지

print <<<BUF
html 코드 블라블라 {$var}
어쩌구 저쩌구
BUF;

vim에서 BUF 안은 syntax highlight가 안되는 단점이 있습니다 -_-;
BUF는 맘대로 바꿔쓰셔도 됩니다~

gamdora의 이미지

BUF 대신 EOHTML을 썼더니 문법 강조가 되네요. :D

송효진의 이미지

템플릿을 추천하고요, (스마티, 템플릿언더바 등등)
어쩔 수 없이 소스내 삽입인 경우는
<?php

if($a) { ?>
<div>true<?php echo $b ?></div>
<?php } else { ?>
<div>false</div>
<?php }

?>

이런게 가능합니다.

emerge money

Necromancer의 이미지

답글 달고 보니 질문하신 분 글을 제가 잘못 봤네요. 제 글 삭제요청합니다.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

죠커의 이미지

스킨 (or 테마)를 별도의 파일로 분리하세요

그리고 스킨에서는 <?=$ace> 이런 식으로 값을 쓰는 애만 넣고 연산하는 부분은 넣지 마세요. 추가로 넣는다면 분기나 반복 정도가 관리 범위의 한계일 것입니다.

- CN의 낙서장 / HanIRC:#CN

행복한고니의 이미지

스킨을 별도로 분리하시는게 좋습니다.
그리고 DB에서 가져온다거나 하는 리스트형 자료는 미리 다 처리하고 마지막에 스킨 파일을 include 해줍니다.

if, for, foreach 등은 스킨에서 쓸 때는 범위가 명확하도록 일부러 alternative 한 문법을 사용하고 있습니다.
스킨에서 제어하는데 조건식이 복잡해지면 변수를 하나 더 정해서 간단하게 보이도록 만들기도 하는 식으로 몇가지 원칙을 정하고 사용하니까, 템플릿 엔진이 따로 없어도 꽤 간편하게 사용할 수 있었습니다.
_______________________________________________
나는 세상에서 가장 중요한 사람이다.
홈페이지 : http://mygony.com

__________________________________
나는 세상에서 가장 중요한 사람이다.

다즐링의 이미지

일단 저는.. 모델 Class를 만듭니다. 디비관련 작업은 몰아두고요.

Contol 부분은 php내에서 하고.. 로직부분이 주로 들어가게됩니다.
물론 Control 하는 php에서 모델 정의된거 include해서 쓰구용.

View는 Template_ 에 맞깁니다. ( http://www.xtac.net/ )
View에서는 간단한 if , loop문 정도가 돌게 되구요..

-------------------------------------------------------------------------------------------------------
Life ... http://iz4u.net/blog/

------------------------------------------------------------------------------------------------
Life is in 다즐링

hongminhee의 이미지

대체 문법을 사용하면 가독성이 조금 더 올라갑니다.

<ul>
    <?php foreach($list as $item): ?>
        <li><?php echo $item ?></li>
    <?php endforeach ?>
</ul>

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.