Zend Framework Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2010/02/09(火) 22:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)
バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa
API
http://framework.zend.com/apidoc/core/
前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0904nobodyさん
2011/02/01(火) 16:11:09ID:???大した事してないのにコード追うのが面倒になるので使ってねーや。
(というかちょっと前のバージョンには存在して無かった)
疎結合で好きな機能だけ使えるのもウリなのに、
最近は兎に角あるものは極力ZFを使うべきって流れになってて嫌だなぁ
0906nobodyさん
2011/02/01(火) 16:29:11ID:???setting.php
$a="ヘッダ";
$b="メイン文章";
$c="フッタ";
index.php
<?php
include "setting.php";
echo <<<HTML
<div id="header">$a</div>
<div id="main">$b</div>
<div id="footer">$c</div>
0907nobodyさん
2011/02/01(火) 17:23:30ID:???デザインとロジックを分けるためだけにFWを導入するわけでは無い。
それ以前に君の例だと、
ViewからController(?)であるsetting.phpを呼び出している時点でMVCのなんたるかすら理解していないと思われる。
基礎からお勉強してきなさい。
0908nobodyさん
2011/02/01(火) 18:31:42ID:???setting.php
$a="ヘッダ";
$b="メイン文章";
$c="フッタ";
include "index.php";
index.php
<?php
echo <<<HTML
<div id="header">$a</div>
<div id="main">$b</div>
<div id="footer">$c</div>
略
0910nobodyさん
2011/02/01(火) 18:56:17ID:???自分がついていけないから、必死でフレームワークの存在を否定したいんだよ。
クラス設計とか全く出来なそうな臭いがするな。
0911nobodyさん
2011/02/01(火) 19:01:27ID:???まぁ、それ以前の問題だけどドヤ顔で>>908を出しちゃうあたり微笑ましい。
専門学校生以下。間違っても職場にいたら足を引っ張るタイプ。
0912nobodyさん
2011/02/01(火) 19:09:19ID:???jsonファイルやxmlファイルやcsvファイルはどこにドキュメントルートの外に置く場合は置いたらいいですか?
0913nobodyさん
2011/02/01(火) 19:23:37ID:???データとかなら data/resources とか好きにディレクトリ作ればいいと思うよ。
推奨プロジェクト・ディレクトリは良くも悪くも冗長で、時として管理し辛い。
0914nobodyさん
2011/02/01(火) 19:31:34ID:???0915nobodyさん
2011/02/01(火) 20:59:45ID:???<li>メニュー1</li>
<li>メニュー2
<ul>
<li>サブリンク1</li>
<li>サブリンク2</li>
</ul>
</li>
<li>メニュー3</li>
</ul>
これをZend_Navigatorで表示したいのですがどなたか教えてください
0916nobodyさん
2011/02/01(火) 22:53:14ID:???0917nobodyさん
2011/02/02(水) 01:22:54ID:???http://framework.zend.com/manual/ja/zend.navigation.containers.html これの
「例7 Converting a container to an array」で$container = Zend_Navigationうんちゃらをコピーする。
フロントコントローラを使っているなら、
Bootstrap.phpにpublic function _initNavigation()作ってそこに貼り付けて、
Zend_Registry::set('Zend_Navigation', $container); しておく。
表示は view/scripts/ にあるphtmlのなかで
<?php echo $this->navigation()->menu(); ?> とする。
使ってないなら
$container->toArray()から作るのかなぁ?
0918nobodyさん
2011/02/02(水) 03:21:43ID:???素朴な疑問なんだが、なんでHTMLを書こうとせず、壁にぶつかってまで自動生成しようとするの?
後々カスタマイズとか非常に面倒な気がするんだが・・・
慣れると手書きよりカスタマイズ性と運用性が上がるとか?
0919nobodyさん
2011/02/02(水) 03:28:13ID:???0920nobodyさん
2011/02/02(水) 09:31:38ID:???Zend_Frameworkde作られたWebサイト、Webアプリなどのソースコードを出しているようなサイトとかCMS等は何かありませんか?
マニュアルとかの断片的なものではなく、実際どのように製品として組み立てているのかとかを学びたいのですが
0921nobodyさん
2011/02/02(水) 09:52:56ID:???TomatoCMS http://www.tomatocms.com/
SetucoCMS http://sourceforge.jp/projects/setucocms/
Live Commerce ! http://www.live-commerce.com/
有名所だと、こんぐらいかね。
Xoops本家の次期版が採用って聞いた気もする。
0922nobodyさん
2011/02/02(水) 11:01:32ID:???<link type="text/css" rel="stylesheet"href="http://example.com/style.css">
っていうタグを全ページに入れたいのですが???Cntroller.phpのfunction ???Action(){〜}で一つ一つアサインしてます
これだとstyle.cssを書き換えると手間がかかってしまうのでいい方法ありませんか?
0923nobodyさん
2011/02/02(水) 11:02:21ID:???×前頁
○全ページ
0924nobodyさん
2011/02/02(水) 11:34:25ID:???Zend_Layoutは、そういう用途のためのもの。
取り敢えず、全体に1回でいいから目を通したほうがいいよ。
0925nobodyさん
2011/02/02(水) 13:50:05ID:???俺はZend_Controller_Actionを継承した中間クラスを作って、init()でアサインするという手でやってる。
0927nobodyさん
2011/02/02(水) 14:53:36ID:???俺はSmartyを連携させて使ってる。俺はこっちの方が楽だ。
0928nobodyさん
2011/02/02(水) 16:07:58ID:???ありがとうございます
0930917
2011/02/02(水) 19:53:18ID:???正直、手書きも含めて自作しちゃうのが簡単だとは思うw
あえて利点を挙げるなら、パンくずリストとサイトマップにも
変換可能ってところかな。
0931nobodyさん
2011/02/03(木) 05:28:20ID:???なじみの無い人には
「パッと見のコードは綺麗だし、IDEとの親和性も良いが、実際使うには冗長な気がする。
疎結合なのは良いが、ドキュメントやサンプルが無いとその関連性が理解出来ず苦労する。」
と、あまり評価がよろしくないw
結局自作クラス群を更にラップするクラス群を作る事になっている件・・・orz
極例だけどStringクラスがあったとして
A) $str = String::create("xxx")->convertEncoding("utf-8")->convertKana("KV")->toUpper()->toString();
B) $str = String::convert(array(options));
C) $str = String::convert($str, "utf-8", "KV", "UP");
AとBは面倒らしい。
パラメータや処理が増えた時はC)の引数を増やせば良い、と・・・。
0932nobodyさん
2011/02/03(木) 07:28:11ID:???普段はCakeを使うことが多いが、個人的には引数増えるよりBの方法が楽だと思う。
というか引数の順番をいちいち記憶するのが面倒。
array(
'val' => $str,
'encoding' => 'utf-8',
'convert' => array('KV', 'upper')
)
とかすれば引数の順番覚えなくてすむし。
Cakeを触りすぎたせいかもしれないが
Aのようなメソッドチェーンの引き回しはPHPの文法に向いてないと思う。
("->"と"."の違いは心理的に大きい)
0933nobodyさん
2011/02/03(木) 09:39:49ID:???意見ありがとう!
A)は冗長だけど、エラーハンドリングのしやすさとか、処理の順番とかキッチリしていて扱いやすいとは思う。
コードは冗長だけど、補完の優秀なIDE使えばタイプ数は、Bよりタイプ数が少なくてすむよ。
B)案だと、配列のキー名のタイポが発生したり、IDEのコード補完が使えないのが辛いよねぇ・・・
かといって引数をクラス化すと途端に冗長と言われるし。
適材適所なんだろうけど、皆の意見をもっと聞きたいっす。
0934nobodyさん
2011/02/03(木) 10:46:00ID:???B型にしとけば良かったよと後悔するタイプだな
0935nobodyさん
2011/02/03(木) 21:13:17ID:???Cはなんとなく気持ち悪いかなぁ。。
その例でいうなら
Number::convert()作ったときに引数が違ってくるよね?
0936nobodyさん
2011/02/03(木) 21:30:04ID:???日本では流行ってないけど時間が立てば流行るよぐらいすごいんだけど
それにZFが使われてた
んで、megentoをダウンロードするとZFが含まれているんだけど、最新のZFにアップグレードするのはファイルの上書きだけで大丈夫か教えて欲しいのです
0938nobodyさん
2011/02/04(金) 10:27:21ID:???ttp://www.magentocommerce.com/
0939nobodyさん
2011/02/04(金) 11:40:19ID:???0940nobodyさん
2011/02/04(金) 13:57:58ID:???ここはそのmagentocommertceのスレじゃないぞ
0941nobodyさん
2011/02/04(金) 14:07:29ID:???ZendFWはディレクトリ丸ごと差替えるだけでバージョンアップ出来る。
magentocommertce自体が別のZendFWバージョンに対応しているかは別の話。
0943nobodyさん
2011/02/05(土) 03:35:47ID:???以下のURLで'.html'を取り除いて、アクション名を受け取りたいのですが、
ルーティングではどのように設定すれば良いでしょうか?
http://domein.com/controller/action.html
以下のようにすると、’action’には'action.html'が格納されます。
----
$route = new Zend_Controller_Router_Route_Regex(
':controller/:action\.html'
);
$router->addRoute('route', $route);
----
どなたかご教示頂ければ幸いですmm
0944nobodyさん
2011/02/05(土) 10:08:36ID:???Zend_Layout は、 有名な「ツーステップビューパターン」を実装したものです。 開発者は、アプリケーションのコンテンツを別のビューの中に埋め込むことができます。 この「別のビュー」は、通常はサイトのテンプレートとなります。
0945nobodyさん
2011/02/05(土) 10:31:07ID:???0946nobodyさん
2011/02/05(土) 11:08:20ID:S6HoVMWFどう書き直したらいいですか?
■application/controllers/IndexController.php
<?php
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->_helper->layout->setLayout('footer');
}
}
■application/views/index/index.phtml
<html>
<head>
<title>タイトル</title>
</head>
<body>
<h1>トップページ</h1>
</body>
</html>
■application/layout/footer.phtml
<div id="footer">フッター</div>
■起動スクリプト
<?php
include "Zend/Controller/Front.php";
include "Zend/Layout.php";
Zend_Layout::startMvc('../application/layouts/');
Zend_Controller_Front::run('../application/controllers');
0947nobodyさん
2011/02/05(土) 13:22:33ID:???レイアウトは共通するのでlayout.phtmlを作成しそこで$this->headMeta()->setCharset('UTF-8');を書きました。
ブラウザでみると<meta name="keywords" content="キーワード" >が最初に来て<meta charset="UTF-8"> が後に来ます。
文字化けの原因にもなるので<meta charset="UTF-8">を<meta name="keywords" content="キーワード" >の前に持って生きたいのですが良い方法ございますでしょうか?
layout.phtmlに
0948nobodyさん
2011/02/05(土) 14:24:02ID:???$item = new stdClass;
$item->type = 'charset';
$item->charset = 'UTF-8';
$item->content = null;
$item->modifiers = array();
$this->headMeta()->prepend($item);
無駄に長くなるね。
0949nobodyさん
2011/02/05(土) 14:25:31ID:???0950nobodyさん
2011/02/05(土) 17:55:32ID:???0951nobodyさん
2011/02/06(日) 03:42:21ID:???Smartyとかと連携した方がいいと思うよ。
0953nobodyさん
2011/02/06(日) 15:19:01ID:???0954nobodyさん
2011/02/06(日) 16:25:28ID:???上にあるようなheadMetaとかheadSctipt(だっけ?)とか無駄に色々あるのを
使わなければ単に変数assignするだけだし敷居も低くない?
viewでPHP関数をそのまま利用できるのは有りだと思うよ。
Smartyの知識+独自のライブラリとかがすでにあるならSmartyでもいいかもしれないけど。
むしろSmartyと連携するメリットがまるでわからない。
0955nobodyさん
2011/02/06(日) 16:35:18ID:???テンプレートエンジンにフィルターとかキャッシュは必須だと思っている。
ZF導入にあたってViewの乗り換えを検討し、同様の事をZend_Viewで行おうとしたけど、
Smartyより難しい印象だったなぁ・・・
PHP構文使えるのはメリットにもデメリットにもなるので、なんとも。
0956nobodyさん
2011/02/06(日) 16:37:32ID:???重いじゃん
0957nobodyさん
2011/02/06(日) 16:42:56ID:???<script type="text/javascript">
alert(1);
</script>
をコントローラから追加したいのですが下記のようにアクションに書いてもエラーページに繋がってしまいます
ページ毎に異なるjavascriptを埋め込みたいので直接VIEWスクリプトには書かないでコントローラから操作できるようにしたいのですがお知恵を拝借させてください
public function indexAction()
{
$this->headScript()->captureStart(); ?>
alert(1);
<?php $this->headScript()->captureEnd();
}
0959nobodyさん
2011/02/06(日) 16:57:57ID:zdEuJ7Gl$this->view->headScript()->offsetSetFile(100, 'test.js');
}
で読み込ませているのですが特定のアクションだけ読み込ませない方法ってありませんか?
0960nobodyさん
2011/02/06(日) 17:52:22ID:???いや、同じ事は出来ると思う。
性能の優劣とでは無くて、ゼロから学ぶならSmartyの方が楽な印象がしたのさ。
ZendFW自体、疎結合で好きな部分だけ使えるようになってるんだから、
Viewには慣れ親しんだSmartyとかでもいいのかな、と。
0961nobodyさん
2011/02/06(日) 20:51:49ID:???WP使えるのにZFまぜる必要ってある?
0962nobodyさん
2011/02/07(月) 01:58:53ID:???0963nobodyさん
2011/02/07(月) 04:15:06ID:X/yGRmJEターミナルでのコマンド入力で一気にコンポーネントの追加したりって可能かな?
それと、リモートのサーバで動いてるzendFWのバージョンアップさせようと思ったら
1)新バージョンのFWをブラウザでローカルにダウンロード
2)リモートのサーバにアップロード
3)sshで既存のFWに上書き
って流れでやるしかないの?
一発で実現できるコマンドってないのかな
0964nobodyさん
2011/02/07(月) 10:29:45ID:???0966nobodyさん
2011/02/07(月) 11:51:29ID:???HTML直書きと比べての話です
0967nobodyさん
2011/02/07(月) 12:32:05ID:???「zend_formもjsとの組み合わせとかやりづらいし、zend_varidatorも
自前の検証クラスに比べて冗長でややこしい一方だしろくなことねーぞ!」って感じ
まあ使ってみなよ
結局使う人の感性次第だ、俺はあわなかったな
0968nobodyさん
2011/02/07(月) 18:44:44ID:???日本語使いたいんですけどttcって使えないですか?
0969nobodyさん
2011/02/07(月) 19:35:31ID:???ttp://yuubiseiharukana.blog.shinobi.jp/Entry/455/見てもよくわかんない
0970969
2011/02/07(月) 19:45:19ID:???0971nobodyさん
2011/02/07(月) 20:01:54ID:???>新しいコンポーネントがリリースされた時に、そのコンポーネントだけ追加することって出来る?
何らかの方法で差分を取得すればいい。(SVNリポジトリ見ればいいと思う)
>ターミナルでのコマンド入力で一気にコンポーネントの追加したりって可能かな?
バッチ組めばOK。俺はSVN UPで済ましちゃってるけど。
>一発で実現できるコマンドってないのかな
リモートサーバが外部にアクセス出来るなら、バッチ処理書けばいい。
0973nobodyさん
2011/02/07(月) 21:21:10ID:???TTCなんてきもい実装への対応をOSSに求めんなよ
自分で調べて分割しろ
あとライセンスは気をつけろ
0978nobodyさん
2011/02/09(水) 11:48:44ID:???0979nobodyさん
2011/02/09(水) 13:10:38ID:???0980nobodyさん
2011/02/09(水) 13:29:55ID:aJnPZ9zMhttp://www.example.com/sample
という風にモジュールで分けたいので以下のようにディレクトリを作成しました
/application/default/
/application/sample/
(各モジュール内にcontrollers,models,viewsディレクトリも入ってます)
(各モジュール内にcontrollersにはIndexController.php、viewsにはindex/index.phtmlとerror/error.phtmlが入ってます)
public_html/index.phpには以下のように書きました
<?php
include 'Zend/Controller/Front.php';
$front = Zend_Controller_Front::getInstance();
$front->addModuleDirectory('../application');
$front->dispatch();
これで
http://www.example.com/とhttp://www.example.com/defaultで/application/default/の内容が表示
http://www.example.com/sampleだとエラーページが表示されます。(エラーページは/application/default/views/error/error.phtmlのものです)
モジュール別に分けて制作したいのですがどこを修正したらよろしいでしょうか?
0981nobodyさん
2011/02/09(水) 14:09:32ID:???修正したテンプレだけ張っておきます
公式
http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)
バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa
API
http://framework.zend.com/apidoc/core/
前のスレッド Zend Framework Part4
http://hibari.2ch.net/test/read.cgi/php/1265721684/
0982nobodyさん
2011/02/09(水) 15:17:33ID:???なんかコントローラのクラス名の命名規則があってモジュール名_IndexControllerって書かないといけなかったようでした
ggって見つけたものなのでマニュアルのどこに書いてあるのかよくわからないのでこれで良いのか分かりませんが・・・
0983nobodyさん
2011/02/09(水) 16:02:02ID:S6y2j2QGアプリケーションのURLを踏む(http://hoge.com/twitter_app/)
↓
「あなたのTwitterアカウントへログイン」(http://twitter.com/oauth/authenticate?oauth_token=***)
↓
認証&callback
↓
callback先のページ(http://hoge.com/twitter_app/callback/)
↓
Service_Twitterの各メソッドで何か処理。
が、どうにも一番下のメソッドの実行部分で失敗します
例:
$response = $twitter->status->update("APIから日本語で投稿");
$response = $twitter->status->update("post with API by testuser");
var_dump($response);//両方ともエラーメッセージ「Could not authenticate you.」になる。PHPエラーはなし
$response = $twitter->status->userTimeline();
var_dump($response);//エラーメッセージ「This method requires authentication.」。PHPエラーはなし
何が原因で認証失敗のエラーが出てるんでしょうか?
callback後、あらかじめ別ウインドウで開いてたtwitterのトップページを更新すると、
ユーザー(testuser)のトップに移動するので認証は成功してるはずなんですが…
zendFWのバージョンは1.10.3です。よろしくお願いします
0984nobodyさん
2011/02/09(水) 17:45:22ID:???Zend_Service_Twitterは使った事ないけど、
OAuthで受け取ったアクセストークンの設定とかはしてる?
0985nobodyさん
2011/02/10(木) 12:44:36ID:B6xb9mKaレスどうもです。
原因わかりました
ZendFWのバージョンがOauth認証に対応してませんでした
1.10のマニュアルを見ると対応してるように書いてるのに、
実際には(自分のは?)対応してなかったという…
意味わからないですが、ありがとうございました
0986nobodyさん
2011/02/10(木) 16:41:11ID:???レイアウトからheaderとcontentsとfooterを呼び出している
0987nobodyさん
2011/02/10(木) 16:43:10ID:???いや、よく考えたらキャッシュ使いまくりだから、あんまり感じないだけなのかも
何にせよキャッシュは大事だよ
0988nobodyさん
2011/02/10(木) 16:45:33ID:???0989nobodyさん
2011/02/10(木) 18:31:27ID:???好きにZend_Cache使いなさい、
ってのがこのフレームワークのスタンスなのよ
Zend_Cacheは簡単だし、粒度もそれなりに設計できる
0990nobodyさん
2011/02/10(木) 23:30:56ID:2I2O4kI9いつもincludeパスが通った所に置いた利用しかしてなかったので分かりません
0991nobodyさん
2011/02/11(金) 04:01:23ID:???どこに置こうがZFを呼び出せるということは、
include_pathの通った場所(例えば".")に置いてるということなので
PHP視点でZFを使うための追加の設定は不要
ただ、ZFに限らずライブラリ系置くなら外部からHTTPアクセスはできないようにしておく方が無難
0992nobodyさん
2011/02/11(金) 04:05:19ID:???Zend Framework Part5
http://hibari.2ch.net/test/read.cgi/php/1297364669/
0993nobodyさん
2011/02/11(金) 12:42:29ID:???htaccessの修正なくてもOK?
0994nobodyさん
2011/02/11(金) 12:44:32ID:???0995nobodyさん
2011/02/11(金) 12:46:04ID:???http://framework.zend.com/manual/ja/zend.controller.quickstart.htmlのこと
0999nobodyさん
2011/02/11(金) 12:54:09ID:???1000nobodyさん
2011/02/11(金) 16:51:20ID:g4d041We10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。