Re: Re: Preferred Syntax
| From: | Eric Butera | Date: | Sat, 17 Dec 2011 14:42:53 +0000 |
| Subject: | Re: Re: Preferred Syntax | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-316053@lists.php.net to get a copy of this message | ||
On Sat, Dec 17, 2011 at 12:59 AM, Adam Richardson <simpleshot@gmail.com> wrote:
> On Fri, Dec 16, 2011 at 11:53 PM, Eric Butera <eric.butera@gmail.com> wrote:
>>
>> To all the people who responded to this thread:
>> It is 2011 - please stop writing code like this.
>>
>> To the OP:
>> I'm glad you're asking questions and realizing you're not happy with
>> your current abilities and suspect there's a better way. I've read
>> the replies in this thread and feel a bit let down. Use a templating
>> language - yes, I understand that is what php is for - but I won't go
>> into it. You should not be echoing, printing, or any other method of
>> concatenating html dealing with escaping quotes inside your php logic
>> code. Please separate your concerns.
>>
>> Not sure what that means? That's OK! If you want to move forward,
>> look up how modern frameworks deal with this issue using their views
>> or template views. You don't have to use a framework if you do not
>> want to, that's perfectly fine. If it works, it works. But in the
>> end, it the separation of logic and html is essential to code
>> maintenance.
>
>
> Eric,
>
> There are many posters to this list, and there exists a broad range of
> programming styles and abilities. I'll bet you're a competent programmer,
> and that you've worked hard to hone your craft. It takes passion and drive
> to improve one's skill set. However, I'd encourage you to focus that passion
> on the list in a way that facilitates the growth of those with questions
> whilst staying true to their current, specific needs.
>
> Frankly, every answer on the list could begin with the suggestion that they
> just use a framework. The list is here to help build up the entire skill set
> of PHP developers.
>
> Let's reexamine the original post:
>
>> Hello all.
>>
>> Can someone tell me which of the following is preferred and why?
>
>
> Use of the word "Which" implies that there were a closed set of options they
> wanted to consider, although we did offer some others, but they all stayed
> relatively true to his original options.
>
>>
>>
>> echo "<a style='text-align:left;size:14;font-weight:bold'
>> href='/mypage.php/$page_id'>$page_name</a><br>";
>> echo "<a style='text-align:left;size:14;font-weight:bold'
>>
>> href='/mypage.php/".$page_id."'>".$page_name."</a><br>";
>
>
> Simple.
>
> Please note there is no logic anywhere in this example. PHP is truly serving
> merely as a templating language here. So, while I agree with the general
> notion that logic should not be intermingled with markup, this particular
> example does not serve as the anti-pattern you suggest.
>
> Also, note that we aren't sure where the $page_id and $page_name variables
> are coming from. In instances where these are set manually within the script
> (like a view variables at the top of the page), there's no need to escape
> anything. That said, you're right, if the data is coming from somewhere
> else, escaping should happen, but there's not enough information to infer
> that, as you say, "You should not be echoing, printing, or any other method
> of concatenating html dealing with escaping quotes inside your php
> logic code."
>
>>
>>
>> When I come across the above code in line 1, I have been changing it to
>> what you see in line 2 for no other reason than it delineates out better in
>> BBEdit. Is this just a preference choice or is one method better than the
>> other?
>
>
> The above statement suggests there's an existing codebase that was being
> worked through. In this light, the answers mostly focused on answering the
> OP's original question, realizing that this was existing code that he was
> refactoring lightly as he goes.
>
> This is not to say that I disagree with all that you said, as I actually
> developed my own framework that:
>
> Cleanly separates PHP from HTML to avoid the intermingling of logic and
> presenation:
> http://nephtaliproject.com/documentation/markup/
> Automatically handles output escaping, input validation:
> http://nephtaliproject.com/documentation/examples/contact.php
> And lots of other features that coincide with the general focus of your
> words.
>
> Given that work, I think it's fair to say that I do agree with several of
> your general points for web development overall. However, this question
> wasn't a big picture question on how to do web development with PHP. It was
> a simple question that was answered in a helpful, specific manner by several
> on the list.
>
> Adam
>
> --
> Nephtali: A simple, flexible, fast, and security-focused PHP framework
> http://nephtaliproject.com
Hi Adam,
Thanks for the reply, noted! I was coming from the angle that I've
had to deal with a lot of code that is 2000 lines of
php/html/javascript inside heredocs, mixed quote escaping, etc. I was
hoping to prevent that from becoming a new thing in this persons code
if that was the case. Apologies for assuming.