Jump to content
php.lv forumi

PHP un templeitu sistēmas


briedis

Recommended Posts

  • Replies 111
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

> Ja "mēs šeit runājam" par "security", tad ir diezgan jocīgi (vai pat amizanti) piesaukt kaut kādus third-party template risinājumus, kuri lielākoties tiek pljek-snjek ievilkti ar visādiem package managariem on-the-fly un noteikti lielākais vairākums pat faktiski neskatās, kas konkrētajā kodā notiek paļaujoties uz tā autoru zināšanām/godaprātu vai kaut kādas publikas pozitīvu novērtējumu utt..

 

Es šeit par “edgy“ saucu *automātisku* security bugu ķeršanu, like this. https://secure.php.net/manual/en/intro.taint.phpTo darīt automātiski ir vairāk kā crazy. :)

 

Tas ko tev dod labs template engine ir automātiskais escapings. Tā vietā lai paļautos ka dators *uzminēs* kas ir slikts un kas nē, tu escapo visus mainīgos kas tiek padoti templatam. Šādi tev nevajag neko atcerēties (aka cognitive load), un, pats galvenais, tu neuzticies, ka dators uzminēs kur ir problēma. Bet template engine ir tikai viens veids kā risināt problēmu — to tu pats izvēlējies kā manu alternatīvu un tad vēl sāki man braukt virsū par "on the fly" instalāciju ar paku menedžeri. :D

Link to comment
Share on other sites

Es šeit par “edgy“ saucu *automātisku* security bugu ķeršanu, like this. https://secure.php.net/manual/en/intro.taint.phpTo darīt automātiski ir vairāk kā crazy. :)

 

Tas ko tev dod labs template engine ir automātiskais escapings. Tā vietā lai paļautos ka dators *uzminēs* kas ir slikts un kas nē, tu escapo visus mainīgos kas tiek padoti templatam

Tik un tā nešķiet, ka vārds "edgy" kaut kā attiecināms (varbūt kardināla atšķirība tulkojuma izpratnē).

 

 

Taint ir mehānisms kā "ķert" vai koderis variabli ir "eskeipojis" TAJĀ SKAITĀ arī lietotot kādu template engini (un kas to varētu "labāk" zināt kā internāli pati valoda)..

Tas, ka ir template engine, neliedz koderim kodā neatkarīgi no templates esamības izpildīt <? =$_GET['blabla']; ?> vai mysql_query(" ... id = $_POST['id']) ..  crazy? Tā notiek realitātē.

 

Tai pat laikā template engine (gatavi risinājumi) var radīt iluzioru iespaidu (vai pat sliktāk neradīt izpratni) par to, kas vispār notiek un kam tas vajadzīgs (laika gaitā ir nācies saskarties ar diezgan daudz šādiem gadījumiem).. 

 

 

un tad vēl sāki man braukt virsū

Neviens nekur nebrauc, bet ir jocīgs komentārs (ar domu pirksti vēdeklī) "mēs te runājam par security" un tad to tomēr bāzēt uz cilvēka faktoru, kas vienmēr ir problēmātiskākais  ..

Link to comment
Share on other sites

Pašam savajadzējās pēc template dziņa, jo prastu haltūras vizītkartes lapeli ar React nerakstīsi. Bija nepieciešams pliks HTML.

Bet tā kā drausmīgi patīk React, gribās kaut ko ļoti līdzīgu.

 

Testam, uzrakstīju.

 

Lai stils tāds pats ka JSX un React.

"use strict";

class Test {
    constructor() {
        this.state = {
            img: 'img1.jpg',
            title: 'Big Big Title',
            list: [1,2,3,4]
        }
    }

    render() {   
        return  <div className="thumbnail">
                    <img className="img-responsive img-thumbnail" src={this.state.img} alt="..." />
                    <div className="caption">
                        <h4><span className="glyphicon glyphicon-education"></span> {this.state.title}</h4>
                        <ul>
                            {this.state.list.map((val, key) => {
                                return <li>{val}</li>
                            })}
                        </ul>
                    </div>
                </div>      
    }        
}

module.exports = new Test


Galā izvadās gatavs HTML strings:

let out = requireJSX('./test.js')
fs.writeFile('test.html', out.render(), 'utf8', (err) => {
    console.log('done')
})
<div class="thumbnail">
    <img class="img-responsive img-thumbnail" src="img1.jpg" alt="..." />
    <div class="caption">
        <h4><span class="glyphicon glyphicon-education"></span> Big Big Title</h4>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </div>
</div>

Jāpalieto un jāpieslīpē, redzēs, varbūt kaut kas sakarīgs privātai lietošanai sanāks.

Edited by Wuu
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...