🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

Q&A

解決済

1回答

3709閲覧

PHP Smarty eclipse上、型の解決ができません となる

kokok

総合スコア145

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

0グッド

0クリップ

投稿2019/11/12 02:37

編集2019/11/12 03:10

php

1 2<?php 3 4 5require_once('C:\pleiades\xampp\php\smarty\Smarty.class.php'); 6 7$smarty = new Smarty(); 8 9$smarty->template_dir = './templates/'; 10 11$smarty->compile_dir = './templates_c/'; 12 13$smarty->assign('name', 'Tom'); 14 15$smarty->display('index.tpl'); 16 17 18

tpl

1 2 3<!DOCTYPE html> 4 <html lang="ja"> 5 <head> 6 <title>Smarty動作確認</title> 7 </head> 8 <body> 9 Hello World!!<br> 10 私の名前は{$name}です。 11 </body> 12 </html> 13 14 15

上記を実行すると
Hello World!!
私の名前はTomです。
となります。

os:windows10
開発環境:Apache+PHP+MySQL

コードはeclipseで書いているのですが、

$smarty = new Smarty();

上記のコードの部分で
Smarty を型に解決できません

とエラーが出てしまいます。

コード自体は実行すると動くのですが、エラーの部分が解決出来なかったのでアドバイス頂けると助かります。

--追記--
Eclipseのphpプロジェクトの PHPインクルード・パス のPHPプロジェクトのアイコンにもエラーマーク(赤×)が出ています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

require_onceで読み込んでいるsmarty本体の記述を__DIR__ で書き直してみては如何でしょうか。
いずれにしてもC:から書くとWindowsでしか使えない記法なので悪手です。

投稿2019/11/12 02:40

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kokok

2019/11/12 03:00

回答ありがとうございます。 require_once(__DIR__ . '\Smarty.class.php'); としました。
m.ts10806

2019/11/12 03:09

で、どうなったのでしょう。 ※欲をいうとディレクトリの区切りも定義済み定数DIRECTORY_SEPARATORを利用されたほうが良いです。
kokok

2019/11/12 03:21

require_once(__DIR__ .DIRECTORY_SEPARATOR.'Smarty.class.php'); 上記のような書き方でよいのでしょうか? $smarty = new Smarty(); の方は、Smarty を型に解決できません のエラーが解決しておりません。
yoorwm

2019/11/12 03:36

ひょっとして、その「Smarty を型に解決できません」というのはeclipseが出しているんじゃないですか?
kokok

2019/11/12 03:41

yoorwmさん >はい、eclipseで出ています。
m.ts10806

2019/11/12 04:17

eclipseがだしてるのが落ち着かないのはわからなくもないですが、実行したときに動いているならそれでいいと言えばそれでいいです。 私は「Cからの絶対パスは悪手」「DIRにかえれば正しくeclipseが見に行くかもしれない」 の二点で回答しています。
kokok

2019/11/12 05:16

「Cからの絶対パスは悪手」「DIRにかえれば正しくeclipseが見に行くかもしれない」 の2点勉強になりました。 今回は、実行したときに動いているので良しとします。 ありがとうございました。
m.ts10806

2019/11/12 05:35

環境依存の書き方はなるべく避けるようにしてくださいね(もしどうしてもそうなる場合は設定ファイルとして外出ししてください。DB接続設定などではよく使われます)
kokok

2019/11/12 07:01

環境依存の書き方など、そういうこともしっかり意識してコードを書けるようにしていきたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問