SlideShare uma empresa Scribd logo
1 de 11
CS- Car t アドオン開発の基礎




      株式会社あんどぷらす
自己紹介
望 月    誠(もちづき まこと)

フォーラム等では mmochi (えむもち)
1 972/5/26 生まれ

    株式会社あんどぷらす 代表取締役
−    オフィスあんどぷらすとして 2000 年 1 1 月創業
−    201 2 年 3 月 8 日法人成り
−    CS- Cart 日本語版 開発パートナー

静岡産業技術専門学校 非常勤講師
セッション内容

アドオン開発の基礎として

        CS- Cart の動作について
    −    基本処理
    −    コアメソドロジー


        アドオンについて
    −    アーキテクチャ
    −    構造
    −    アドオンの実際
CS- Car t の動作について



    基本処理

    コアメソドロジー

    アーキテクチャ
基本処理               CS- Car t の動作について




1 . メインの実行ファイル
     ( ad mi n. php もしくは i nd ex. php )
2. 事前処理
    ( prepare. php )
3. 基本処理ファイル
    ( i ni t. php )
4. コントローラー
    ( [ コントローラー名 ] . php )
の順で実行されます。
コアメソドロジー                        CS- Car t の動作につい
                            て




    コントローラー
DB からのデータ抽出、データ処理、スキンへの表示のための
  準備などを行う処理メソッドをコントローラーと呼びま
  す。

    コントローラーファイル( [ コントローラー名 ].php )は
    下記ディレクトリに置かれています。
    /controllers/admin
    /controllers/customer
    /controllers/common
    ※http://docs.cs-cart.jp/core-
    methodology/controllers
コアメソドロジー                              CS- Car t の動作につい
                            て


    コントローラ名およびコントローラーへのパスはメインの実
    行ファイル( index.php もしくは admin.php )の GET パラ
    メータ 「 dispatch 」の値により自動的にセットされます。

    「 dispatch 」パラメータの値は [ コントローラー名 ].
    [ モード名 ] という構成となり、呼び出されるファイルは
    [ コントローラー名 ].php となります。

    管理画面、商品一覧を表示する場合の例
    ページ:
    http://cscart_dir/admin.php?dispatch=products.manage
    使用されるコントローラー:
    /controllers/admin/products.php
アドオンについて



    アーキテクチャ

    構造

    アドオンの実際
アーキテクチャ  アドオンについて


CS- Cart はコア機能を編集することなく機能を追加・修正で
  きるよう設計されています。
  「アドオン」 による機能追加・修正を実現するため、以
  下のアーキテクチャツールを使用します。

    コードフック

    プレコントローラー

    ポストコントローラー

    テンプレートフック

    データベース
構造  アドオンについて
アドオンを構成するディレクトリ
/ad d ons /[ アドオン名 ]
   /var/s ki n/bas e/cus tomer/ad d ons /[ アドオン名 ]
   /var/s ki n/bas e/ad mi n/ad d ons /[ アドオン名 ]
   /var/s ki n/bas e/mai l /ad d ons /[ アドオン名 ]
※ /ad d ons /[ アドオン名 ] 以外のディレクトリはアドオンの構成上必要
  な場合のみ作成。
/ad d ons /[ アドオン名 ] には、以下のファイルおよびディレクトリが含ま
   れます。
ad d on. xml
    f unc. php
    i ni t. php
    conf i g. php
    /control l ers
    /s chemas
アドオンの実際  アドオンについて
勉強会用アドオン「ソート順拡張アドオン」



    ap_s orti ng_extenti on_l earn


/ad d ons /ap_s orti ng_extenti on
          −   ad d on. xml
          −   f unc. php
          −   i ni t. php

Mais conteúdo relacionado

Mais procurados

a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすa-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすSeiko Kuchida
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in OkazakiEtsushi Ishii
 
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するWordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するTakashi Uemura
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php - BREN
 
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)Advanced customfieldsの追加機能options pageについて(画像自主規制ver)
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)Hayato Danda
 
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみようa-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみようSeiko Kuchida
 
委託開発業務について
委託開発業務について委託開発業務について
委託開発業務についてbaeksunil
 
パララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイトパララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイトTakuma Nishiyama
 
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介Seiko Kuchida
 
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!BREN
 
20120826 ec cube-handson
20120826 ec cube-handson20120826 ec cube-handson
20120826 ec cube-handsonMasaki Takeda
 
御池サミット20130726
御池サミット20130726御池サミット20130726
御池サミット20130726Takeshiro Kani
 
20130225 pronet study
20130225 pronet study20130225 pronet study
20130225 pronet studySix Apart
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Yasuhito Yabe
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ知己 久保
 
WordPress, concrete5, Drupal
WordPress, concrete5, DrupalWordPress, concrete5, Drupal
WordPress, concrete5, DrupalFumito Mizuno
 
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiMtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiTomohiro Okuwaki
 

Mais procurados (18)

a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすa-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
 
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazakia-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
 
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解するWordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
WordPress初心者からの脱出! カスタムなんとかをちゃんと理解する
 
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
 
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)Advanced customfieldsの追加機能options pageについて(画像自主規制ver)
Advanced customfieldsの追加機能options pageについて(画像自主規制ver)
 
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみようa-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
 
委託開発業務について
委託開発業務について委託開発業務について
委託開発業務について
 
パララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイトパララックス効果を使ったWordPressサイト
パララックス効果を使ったWordPressサイト
 
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
 
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!
 
20120826 ec cube-handson
20120826 ec cube-handson20120826 ec cube-handson
20120826 ec cube-handson
 
御池サミット20130726
御池サミット20130726御池サミット20130726
御池サミット20130726
 
20130225 pronet study
20130225 pronet study20130225 pronet study
20130225 pronet study
 
Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編Htmlコーディングの効率化 前編
Htmlコーディングの効率化 前編
 
tansuの紹介
tansuの紹介tansuの紹介
tansuの紹介
 
HTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレHTML/CSSを効率的にする メタ言語とツールのアレコレ
HTML/CSSを効率的にする メタ言語とツールのアレコレ
 
WordPress, concrete5, Drupal
WordPress, concrete5, DrupalWordPress, concrete5, Drupal
WordPress, concrete5, Drupal
 
Mtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwakiMtcafe tokyo 2013_spring_okuwaki
Mtcafe tokyo 2013_spring_okuwaki
 

Semelhante a CS-CART addon

C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaInsight Technology, Inc.
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルRyuji Egashira
 
アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテストTomonori Yamada
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例Shigeru UCHIYAMA
 
System centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでSystem centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでMasahiko Ebisuda
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionYoshitaka Seo
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用stomita
 
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~日本マイクロソフト株式会社
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京Masayuki Abe
 
How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022Michinari Kobuna
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925Yu Ito
 
ECカスタマイズ - Commerble
ECカスタマイズ - CommerbleECカスタマイズ - Commerble
ECカスタマイズ - CommerbleHiroyuki Watanabe
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-KojiMaruyama5
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Katsunori Kanda
 
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介オラクルエンジニア通信
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版Junichiro Tasaki
 

Semelhante a CS-CART addon (20)

C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
 
アプリコンテスト
アプリコンテストアプリコンテスト
アプリコンテスト
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
System centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでSystem centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまで
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
Apache Module
Apache ModuleApache Module
Apache Module
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用
 
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
 
How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022
 
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
 
G0042 h
G0042 hG0042 h
G0042 h
 
ECカスタマイズ - Commerble
ECカスタマイズ - CommerbleECカスタマイズ - Commerble
ECカスタマイズ - Commerble
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介
【2017年5月時点】Oracle EssbaseからAnalytics Cloudへの導入効果検証されたお客様事例のご紹介
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版
 

CS-CART addon

  • 1. CS- Car t アドオン開発の基礎 株式会社あんどぷらす
  • 2. 自己紹介 望 月 誠(もちづき まこと) フォーラム等では mmochi (えむもち) 1 972/5/26 生まれ 株式会社あんどぷらす 代表取締役 − オフィスあんどぷらすとして 2000 年 1 1 月創業 − 201 2 年 3 月 8 日法人成り − CS- Cart 日本語版 開発パートナー 静岡産業技術専門学校 非常勤講師
  • 3. セッション内容 アドオン開発の基礎として  CS- Cart の動作について − 基本処理 − コアメソドロジー  アドオンについて − アーキテクチャ − 構造 − アドオンの実際
  • 4. CS- Car t の動作について  基本処理  コアメソドロジー  アーキテクチャ
  • 5. 基本処理  CS- Car t の動作について 1 . メインの実行ファイル ( ad mi n. php もしくは i nd ex. php ) 2. 事前処理 ( prepare. php ) 3. 基本処理ファイル ( i ni t. php ) 4. コントローラー ( [ コントローラー名 ] . php ) の順で実行されます。
  • 6. コアメソドロジー  CS- Car t の動作につい て  コントローラー DB からのデータ抽出、データ処理、スキンへの表示のための 準備などを行う処理メソッドをコントローラーと呼びま す。 コントローラーファイル( [ コントローラー名 ].php )は 下記ディレクトリに置かれています。 /controllers/admin /controllers/customer /controllers/common ※http://docs.cs-cart.jp/core- methodology/controllers
  • 7. コアメソドロジー  CS- Car t の動作につい て  コントローラ名およびコントローラーへのパスはメインの実 行ファイル( index.php もしくは admin.php )の GET パラ メータ 「 dispatch 」の値により自動的にセットされます。  「 dispatch 」パラメータの値は [ コントローラー名 ]. [ モード名 ] という構成となり、呼び出されるファイルは [ コントローラー名 ].php となります。  管理画面、商品一覧を表示する場合の例 ページ: http://cscart_dir/admin.php?dispatch=products.manage 使用されるコントローラー: /controllers/admin/products.php
  • 8. アドオンについて  アーキテクチャ  構造  アドオンの実際
  • 9. アーキテクチャ  アドオンについて CS- Cart はコア機能を編集することなく機能を追加・修正で きるよう設計されています。 「アドオン」 による機能追加・修正を実現するため、以 下のアーキテクチャツールを使用します。  コードフック  プレコントローラー  ポストコントローラー  テンプレートフック  データベース
  • 10. 構造  アドオンについて アドオンを構成するディレクトリ /ad d ons /[ アドオン名 ] /var/s ki n/bas e/cus tomer/ad d ons /[ アドオン名 ] /var/s ki n/bas e/ad mi n/ad d ons /[ アドオン名 ] /var/s ki n/bas e/mai l /ad d ons /[ アドオン名 ] ※ /ad d ons /[ アドオン名 ] 以外のディレクトリはアドオンの構成上必要 な場合のみ作成。 /ad d ons /[ アドオン名 ] には、以下のファイルおよびディレクトリが含ま れます。 ad d on. xml f unc. php i ni t. php conf i g. php /control l ers /s chemas
  • 11. アドオンの実際  アドオンについて 勉強会用アドオン「ソート順拡張アドオン」  ap_s orti ng_extenti on_l earn /ad d ons /ap_s orti ng_extenti on − ad d on. xml − f unc. php − i ni t. php