SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
PHPTAL with CakePHP
       July 2011
           CakePHP
About Me


•   WEB Developer / PHP / CakePHP / HTML / CSS / jQuery / MySQL / iPhone /
    /     /    /     /      /             /          / no more

•   BLOG: http://php-tips.com/
•   TWITTER: @nojimage
Template Engine
Template Engine

•                                     HTML


• Smarty, Twig, PHP, PHPTAL, etc...
Data               Template




       Template
        Engine




        HTML,
       RSS Feed,
         etc...
PHPTAL
TAL

•                            XHTML(XML)


• http://wiki.zope.org/ZPT/TAL
Templae Attribute Language

•                            XHTML(XML)


• http://wiki.zope.org/ZPT/TAL
PHPTAL

• Zope      TAL    PHP

•

    http://phptal.org/
•

    http://phptal.org/manual/ja/
code
Data
$people = array(
    array(
        ‘name’ => ‘Taro Yamada’,
        ‘phone’ => ‘090-0000-0000’
    ),
    array(
        ‘name’ => ‘Hisateru Tanaka’,
        ‘phone’ => ’06-XXXX-XXXX’
    ),
    // ...
);
HTML
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    <tr>
         <td>person's name</td>
         <td>person's phone</td>
    </tr>
    <tr>
         <td>sample name</td>
         <td>sample phone</td>
    </tr>
</table>
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    <tr>
         <td>person's name</td>
         <td>person's phone</td>
    </tr>
    <tr>
         <td>sample name</td>
         <td>sample phone</td>
    </tr>
</table>
PHP
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    <?php foreach ($people as $person) : ?>
    <tr>
         <td><?php echo $person['name']; ?></td>
         <td><?php echo $person['phone']; ?></td>
    </tr>
    <?php endforeach; ?>
</table>
Smarty
   is not smart...
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    {foreach from=$people item=person}
    <tr>
         <td>{$person.name}</td>
         <td>{$person.phone}</td>
    </tr>
    {/foreach}
</table>
PHPTAL
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    <tr tal:repeat="person people">
         <td tal:content="person/name">person's
name</td>
         <td tal:content="person/phone">person's
phone</td>
    </tr>
    <tr tal:replace="">
         <td>sample name</td>
         <td>sample phone</td>
    </tr>
</table>
<table>
    <tr>
         <th>Name</th>
         <th>Phone</th>
    </tr>
    <tr tal:repeat="person people">
         <td tal:content="person/name">person's

   HTML
name</td>
         <td tal:content="person/phone">person's
phone</td>
    </tr>
    <tr tal:replace="">
         <td>sample name</td>
         <td>sample phone</td>
    </tr>
</table>
in Browser
in Browser
in Browser
in Browser




HTML
HTML
PHPTAL

•

    1. tal:define          7. tal:attributes
    2. tal:condition      8. tal:on-error
    3. tal:repeat         9. metal:define-macro
    4. tal:omit-tag       10. metal:use-macro
    5. tal:replace        11. metal:define-slot
    6. tal:content        12. metal:fill-slot
PHPTAL is Smart!
PHPTAL
PHPTAL
  with
CakePHP
CakePHP-TALTAL
     plugin
https://github.com/nojimage/
     CakePHP-TALTAL
Feature
•       html, xhtml, zpt
    PHPTAL
•       ctp     PHP
      OK
•
Feature
• url,   fullurl
• cake:helper
Installation
• git   clone or download
• set   to plugins/taltal
• write   to AppController
class AppController extends Controller {
    // ...(snip)

    public $view = 'Taltal.Phptal';
    // ...(snip)
}
Let’s Try PHPTAL!!

      PHPTAL
CakePHP-TALTAL
• https://github.com/nojimage/CakePHP-TALTAL

• since   2011/06/01
• version   0.3.1
PHPTAL with CakePHP
PHPTAL with CakePHP

Weitere ähnliche Inhalte

Was ist angesagt?

Teri's Resume
Teri's ResumeTeri's Resume
Teri's Resumeteri louk
 
Can WordPress really do that? A case study of vierderduer.no
Can WordPress really do that? A case study of vierderduer.noCan WordPress really do that? A case study of vierderduer.no
Can WordPress really do that? A case study of vierderduer.noMorten Rand-Hendriksen
 
Secure your folder with password/without any software
Secure your folder with password/without any softwareSecure your folder with password/without any software
Secure your folder with password/without any softwareMohd Sajjad
 
Using MySQL in a web-scale environment
Using MySQL in a web-scale environmentUsing MySQL in a web-scale environment
Using MySQL in a web-scale environmentDavid Landgren
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Goro Fuji
 
HTML Templates Using Clear Silver
HTML Templates Using Clear SilverHTML Templates Using Clear Silver
HTML Templates Using Clear SilverPaulWay
 
Popstat1 sh
Popstat1 shPopstat1 sh
Popstat1 shBen Pope
 

Was ist angesagt? (8)

Teri's Resume
Teri's ResumeTeri's Resume
Teri's Resume
 
Can WordPress really do that? A case study of vierderduer.no
Can WordPress really do that? A case study of vierderduer.noCan WordPress really do that? A case study of vierderduer.no
Can WordPress really do that? A case study of vierderduer.no
 
Secure your folder with password/without any software
Secure your folder with password/without any softwareSecure your folder with password/without any software
Secure your folder with password/without any software
 
Using MySQL in a web-scale environment
Using MySQL in a web-scale environmentUsing MySQL in a web-scale environment
Using MySQL in a web-scale environment
 
Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11Xslate sv perl-2013-7-11
Xslate sv perl-2013-7-11
 
HTML Templates Using Clear Silver
HTML Templates Using Clear SilverHTML Templates Using Clear Silver
HTML Templates Using Clear Silver
 
Popstat1 sh
Popstat1 shPopstat1 sh
Popstat1 sh
 
PHP Filing
PHP Filing PHP Filing
PHP Filing
 

Andere mochten auch

Cake php4designers
Cake php4designersCake php4designers
Cake php4designersSeiji Ogawa
 
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会Kazuhiro Hara
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月VirtualTech Japan Inc.
 
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYO
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYOApp Dynamics case study on U-NEXT at AppJam 2015 in TOKYO
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYOTakatoshi Kakimoto
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016Hiroshi Tokumaru
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 

Andere mochten auch (7)

Cake php4designers
Cake php4designersCake php4designers
Cake php4designers
 
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会MVCのVを極めしWebデザイナーになる - CakePHP勉強会
MVCのVを極めしWebデザイナーになる - CakePHP勉強会
 
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
アプリケーション性能管理(APM)ツールの新世代 「AppDynamics」のご紹介 – OpenStack最新情報セミナー 2015年7月
 
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYO
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYOApp Dynamics case study on U-NEXT at AppJam 2015 in TOKYO
App Dynamics case study on U-NEXT at AppJam 2015 in TOKYO
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 

Ähnlich wie PHPTAL with CakePHP

Ähnlich wie PHPTAL with CakePHP (20)

Xml and xslt
Xml and xsltXml and xslt
Xml and xslt
 
XML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEARXML and Web Services with PHP5 and PEAR
XML and Web Services with PHP5 and PEAR
 
XML Transformations With PHP
XML Transformations With PHPXML Transformations With PHP
XML Transformations With PHP
 
APEX Themes and Templates
APEX Themes and TemplatesAPEX Themes and Templates
APEX Themes and Templates
 
Introduction To Xml
Introduction To XmlIntroduction To Xml
Introduction To Xml
 
Forum Presentation
Forum PresentationForum Presentation
Forum Presentation
 
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
 
Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4Inroduction to XSLT with PHP4
Inroduction to XSLT with PHP4
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
13. view data
13. view data13. view data
13. view data
 
PHP Presentation
PHP PresentationPHP Presentation
PHP Presentation
 
Changing Template Engine
Changing Template EngineChanging Template Engine
Changing Template Engine
 
BITM3730 9-13.pptx
BITM3730 9-13.pptxBITM3730 9-13.pptx
BITM3730 9-13.pptx
 
REST, HTTP, and the PATCH verb (with kittens)
REST, HTTP, and the PATCH verb (with kittens)REST, HTTP, and the PATCH verb (with kittens)
REST, HTTP, and the PATCH verb (with kittens)
 
REST dojo Comet
REST dojo CometREST dojo Comet
REST dojo Comet
 
Tornado
TornadoTornado
Tornado
 
20120424 b
20120424 b20120424 b
20120424 b
 
Lab final
Lab finalLab final
Lab final
 
PHPTAL introduction
PHPTAL introductionPHPTAL introduction
PHPTAL introduction
 

Mehr von Takashi Nojima

Composerはじめました
ComposerはじめましたComposerはじめました
ComposerはじめましたTakashi Nojima
 
jQuery プラグイン作成入門
jQuery プラグイン作成入門jQuery プラグイン作成入門
jQuery プラグイン作成入門Takashi Nojima
 
CakePHP SessionAcl Component
CakePHP SessionAcl ComponentCakePHP SessionAcl Component
CakePHP SessionAcl ComponentTakashi Nojima
 
TwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTakashi Nojima
 

Mehr von Takashi Nojima (6)

Composerはじめました
ComposerはじめましたComposerはじめました
Composerはじめました
 
Plugin for CakePHP2.0
Plugin for CakePHP2.0Plugin for CakePHP2.0
Plugin for CakePHP2.0
 
jQuery プラグイン作成入門
jQuery プラグイン作成入門jQuery プラグイン作成入門
jQuery プラグイン作成入門
 
CakePHP SessionAcl Component
CakePHP SessionAcl ComponentCakePHP SessionAcl Component
CakePHP SessionAcl Component
 
Mixi kit
Mixi kitMixi kit
Mixi kit
 
TwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキングTwitterKitではじめる OAuthスピードクッキング
TwitterKitではじめる OAuthスピードクッキング
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Kürzlich hochgeladen (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

PHPTAL with CakePHP

  • 1. PHPTAL with CakePHP July 2011 CakePHP
  • 2. About Me • WEB Developer / PHP / CakePHP / HTML / CSS / jQuery / MySQL / iPhone / / / / / / / / no more • BLOG: http://php-tips.com/ • TWITTER: @nojimage
  • 4. Template Engine • HTML • Smarty, Twig, PHP, PHPTAL, etc...
  • 5. Data Template Template Engine HTML, RSS Feed, etc...
  • 7. TAL • XHTML(XML) • http://wiki.zope.org/ZPT/TAL
  • 8. Templae Attribute Language • XHTML(XML) • http://wiki.zope.org/ZPT/TAL
  • 9. PHPTAL • Zope TAL PHP • http://phptal.org/ • http://phptal.org/manual/ja/
  • 10. code
  • 11.
  • 12. Data
  • 13. $people = array( array( ‘name’ => ‘Taro Yamada’, ‘phone’ => ‘090-0000-0000’ ), array( ‘name’ => ‘Hisateru Tanaka’, ‘phone’ => ’06-XXXX-XXXX’ ), // ... );
  • 14. HTML
  • 15. <table> <tr> <th>Name</th> <th>Phone</th> </tr> <tr> <td>person's name</td> <td>person's phone</td> </tr> <tr> <td>sample name</td> <td>sample phone</td> </tr> </table>
  • 16. <table> <tr> <th>Name</th> <th>Phone</th> </tr> <tr> <td>person's name</td> <td>person's phone</td> </tr> <tr> <td>sample name</td> <td>sample phone</td> </tr> </table>
  • 17. PHP
  • 18. <table> <tr> <th>Name</th> <th>Phone</th> </tr> <?php foreach ($people as $person) : ?> <tr> <td><?php echo $person['name']; ?></td> <td><?php echo $person['phone']; ?></td> </tr> <?php endforeach; ?> </table>
  • 19. Smarty is not smart...
  • 20. <table> <tr> <th>Name</th> <th>Phone</th> </tr> {foreach from=$people item=person} <tr> <td>{$person.name}</td> <td>{$person.phone}</td> </tr> {/foreach} </table>
  • 22. <table> <tr> <th>Name</th> <th>Phone</th> </tr> <tr tal:repeat="person people"> <td tal:content="person/name">person's name</td> <td tal:content="person/phone">person's phone</td> </tr> <tr tal:replace=""> <td>sample name</td> <td>sample phone</td> </tr> </table>
  • 23. <table> <tr> <th>Name</th> <th>Phone</th> </tr> <tr tal:repeat="person people"> <td tal:content="person/name">person's HTML name</td> <td tal:content="person/phone">person's phone</td> </tr> <tr tal:replace=""> <td>sample name</td> <td>sample phone</td> </tr> </table>
  • 28. HTML
  • 29.
  • 30. PHPTAL • 1. tal:define 7. tal:attributes 2. tal:condition 8. tal:on-error 3. tal:repeat 9. metal:define-macro 4. tal:omit-tag 10. metal:use-macro 5. tal:replace 11. metal:define-slot 6. tal:content 12. metal:fill-slot
  • 32.
  • 34.
  • 35.
  • 37. CakePHP-TALTAL plugin
  • 39. Feature • html, xhtml, zpt PHPTAL • ctp PHP OK •
  • 40. Feature • url, fullurl • cake:helper
  • 41. Installation • git clone or download • set to plugins/taltal • write to AppController class AppController extends Controller { // ...(snip) public $view = 'Taltal.Phptal'; // ...(snip) }