質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

1495閲覧

CakePHPのコード書き換えについて

asatteshiasatte

総合スコア11

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/10/18 03:27

編集2016/10/18 07:12

現在CakePHPで開発を行っている者です。
質問なのですが、ビューから入力した情報を別のファイル内の、あるコード部分に書き加えることはできるのでしょうか。
例えば、ビューで入力した情報を変数$aに入れて、別のファイル内のコードの変数$bを$aに書き加える(書き換える)という感じです。

調べてみるとFileAPIのwriteでファイルへの書き込みを行えるようなことが書いてあるのですが、上記の例のようにできるのかよくわかりません。

説明がわかりづらくて申し訳ありませんが、ご返答宜しくお願い申し上げます。


✳︎追記

PHP

1 public function hoge(){ 2 $data=$this->request->data['Viewで入力された値']; 3 //Component内のPHPファイル内のコードの変数$abcを$dataに書き換える 4 }

PHP

1<?php 2App::uses('Component', 'Controller'); 3class FooComponent extends Component{ 4 public function example(){ 5 if(User.status==$abc){ 6 ~~~~~~~~~~~~ 7 } 8 } 9} 10?>

一度値を入力して$abcの値を書き換えたら、ずっとその値のままにしたいと思っています。
利用のイメージとしては、初期設定で記入した値でメソッドを書き換えて、その後はその状態のままメソッドを利用していくという流れです。

わかりづらくて、本当に申し訳ありません。

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

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

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

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

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

popobot

2016/10/18 03:45 編集

やりたいことがよくわかりません...。具体的なコードを示すとかしてほしいです。別のファイル内のコードはいつ実行されるのでしょうか?別のファイルのコードとはエレメントのこと?
guest

回答3

0

ベストアンサー

なるほど、やりたいことはControllerで受け取ったPOSTデータ($this->request->data)をComponentで使いたいということですかね。だったらControllerからComponentに値を渡すことができるので、普通にできると思いますよ。
Controllerから$this->コンポーネント名でComponentにアクセスできます(マニュアル参照)

php

1public function hoge(){ 2 $data=$this->request->data['Viewで入力された値']; 3 $this->Foo->abc = $data; 4}

php

1<?php 2App::uses('Component', 'Controller'); 3class FooComponent extends Component{ 4 public $abc; 5 public function example(){ 6 if(User.status==$this->abc){ 7 ~~~~~~~~~~~~ 8 } 9 } 10}

なお、上記のやり方はそのリクエストに対しては有効ですが、それ以降、他のページとかでもこの変数を保持しておきたいのであれば、SESSIONやDB等を使ってサーバ側で、Viewで入力された値を保持しておく必要があります。

投稿2016/10/18 20:48

編集2016/10/18 20:54
popobot

総合スコア6586

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

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

asatteshiasatte

2016/10/20 11:50

ご返答ありがとうございます。 他のページでも変数の値を保持しておきたいと考えているため、SESSIONやDB等で値を保持できるようにしたいと思います。 まだどのようにSESSIONやDB等で変数の値を保持すればいいのか、イメージができていないので、自分なりに調べて試してみたいと思います。
guest

0

やりたいことがあまりわかっていませんが、
とにかく入力された値をグローバルで保持したい、と解釈しました。違ってたらすみません。

手っ取り早いのは、適当なクラスを使って、staticな変数を作っておき、
入力された値を代入してしまうことでしょうかね。

質問とはあまり関係ない回答かもしれませんが、最終的にやりたいことを汲み取って回答してみました。

投稿2016/10/18 08:01

livetc

総合スコア86

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

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

asatteshiasatte

2016/10/20 11:43

ご返答ありがとうございます。 教えていただいた解決策で、実際に自分がやりたいことができるのかどうか、試してみたいと思います。
guest

0

・CakePHPで同一サーバ上のファイル書き換えは出来るか?
→Yes fwrite等、PHP標準機能で可能

・ファイル内の特定の箇所を指定して書き換えは可能か?
→Yes preg_replace等、正規表現を使った書き換えが可能

・今回の要件は可能か?
→可能ではあるが、大変面倒になりそう
$aを$bに書き換えることまでは出来るが、今度$bを$cに書き換えるとなると、現在は$aではなく$bである、という情報が必要。
その情報はDBや別ファイル等で管理する必要があるが、とにかく面倒そう

・ではどうしたらいいか?
最初から、DBや別ファイルに情報を保存しておき、どのデータを読み込むかの判断を行うだけにすればいいのでは?
$aを$bに変えるのではなく、$aの中身をDB等から動的に取得するような感じで

投稿2016/10/18 07:21

kunai

総合スコア5405

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

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

asatteshiasatte

2016/10/20 11:41

ご返答ありがとうございます。 現状では$aを$bに置き換えるというところまでを考えており、且つ特定の箇所を指定して書き換えを行いたいと考えているため、preg_replaceを試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問