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

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

詳細はこちら
phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

CakePHP

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

Q&A

解決済

2回答

16498閲覧

エラーの内容を解説してほしい。Deprecated: Array and string offset access syntax with curly braces is deprecated in

konisi721

総合スコア11

phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

CakePHP

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

0グッド

2クリップ

投稿2021/01/14 12:36

編集2021/01/15 04:18

野球の打席結果を集計して、結果を表示するwebアプリケーションを作成中です。ブラウザにアップしたところ
Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/bhubhrec/public_html/baseball/vendor/cakephp/cakephp/src/View/Helper/FormHelper.php on line 202
こちらのエラーが出ました。
調べてみて、こちらのことがわかったのですが、 「中括弧を使用した配列および文字列オフセットアクセス構文は非推奨です」

対処法などがわかりませんでしたので、エラー内容の解説と対処法などがありましたら教えてください。
フォームヘルパーを使用している場所です。

<?php echo $this->Form->create(null,["type"=>"post","url"=>["action"=>"login"]])?> <?php echo $this->Form->create(null,["type"=>"post","url"=>["action"=>"newdata"]])?> <?php echo $this->Form->create(null,["type"=>"post","url"=>["action"=>"data01"]])?>

phpPHP 7.4.9 cakephp 3.6.13です。

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

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

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

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

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

m.ts10806

2021/01/14 12:44

コード無しに対処法を提示するのは無理です。 PHPのバージョンとCakePHPのバージョンも提示されたほうが良いでしょう。 FormHelper本体より、ご自身のFormHelperの使い方に問題があるようにも思います。
konisi721

2021/01/14 12:46

がいとうファイルが存在しなかったので、コードを載せれませんでした。すみません。
m.ts10806

2021/01/14 12:47

意味が分かりません。
konisi721

2021/01/14 12:52

FormHelper.phpが自分のファイルにないのでコードを載せれませんでした。
m.ts10806

2021/01/14 12:54

パスがあるじゃないですか。 /home/bhubhrec/public_html/baseball/vendor/cakephp/cakephp/src/View/Helper/FormHelper.php ただ、そもそもcomposer管理下にあるプログラムなので、 余程のことがない限り触ることはないでしょうし、触ってはいけません。 提示してほしいのは自身で組んだコードです。 PHPのバージョン、CakePHPのバージョンをマイナーバージョンまで提示してください。
m.ts10806

2021/01/14 13:01

PHPのバージョン、CakePHPのバージョンをマイナーバージョンまで提示してください。
konisi721

2021/01/14 17:38

phpPHP 7.4.9 cakephp 3.6.13です。
m.ts10806

2021/01/14 23:10

質問本文に提示してもらえればと。
m.ts10806

2021/01/14 23:11

あとMySQL利用されているなら「phpPgAdmin」は関係ないと思います。 あくまでPostgreSQL用のツールです。
konisi721

2021/01/15 04:20

ありがとうございます。本文に掲載させていただきました。
guest

回答2

0

ベストアンサー

下記が参考になるかと。
【PHP7.4】波括弧による文字列|配列アクセスが削除される

出ているのは「非推奨であるという警告」であって「エラー」とは違います。
非推奨となる機能=今後削除される機能 と解釈して良く、「近いうちに使えなくなる」と教えてくれているわけですね。

申告されている

PHP 7.4.9

というPHPのバージョンからして

Cakephp 3.6.13

が対応されていないのであろうということが推察されます。
3.6→3.9の移行ガイドにも多くの非推奨事項があげられていることから、おおよそ間違いないでしょう。

考えられるのは主に2つ

  • CakePHPのバージョンを上げる
  • PHPのバージョンを下げる

PHPのバージョンを下げるのはあまりすすめられません。
どこかで上げる必要は出てきますしね。
PHP8のことも加味すると、やはりCakePHPのバージョンを上げるべきと思います。

投稿2021/01/14 23:19

m.ts10806

総合スコア80875

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

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

konisi721

2021/01/15 04:21

ありがとうございます。cakephpのバージョンを上げる方でトライしてみます。
m.ts10806

2021/01/15 04:50

提示した移行ガイドは必読です。 今組まれたコードが動作しなくなる可能性もあるので。
konisi721

2021/01/16 00:56

ありがとうございます。cakephp3.9.0に上げることができました。
guest

0

エラーが出る原因と対策は m.ts10806さんの指摘の通りなのですが、現実的な対策としては、Deprecatedなエラーを表示しないという方法もあります。この書き方は、今後使えなくなるだけで、直ちに問題とか、脆弱性になるわけではないので、実行環境では php.ini に以下のような設定を指定することでも、エラーは出なくなります。

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

ただし、PHP 8.0以降では、こちらは問答無用でエラーになりますので、CakePHPのバージョンはいずれあげる必要があります。

古いCakePHPを使い続けることのデメリットとしては、脆弱性の存在があります。CakePHP 3.6.13には、CVE-2019-11458という脆弱性があります。こちらは、CakePHP 3.6.15で修正されているので、3.6系の最新版(3.6.15)を導入するか、できれば3系の最新版(3.9.5)を導入するべきでしょう。

投稿2021/01/15 03:38

ockeghem

総合スコア11705

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

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

m.ts10806

2021/01/15 03:48

個人的な興味でお聞きしたいのですが、 今回のようなケースでは「とりあえず現状回避」以外でerror_reporting を調整することはありますか?
ockeghem

2021/01/15 03:53

ないと思います。また、開発環境ではDeprecatedなエラーも表示した方がよいですね。
m.ts10806

2021/01/15 03:58

ご返信ありがとうございます。 >開発環境ではDeprecatedなエラーも表示した方がよいですね。 そうですね。学習段階、開発途中はむしろ出しておくべきですね。
konisi721

2021/01/15 04:22

回答ありがとうございます。cakephpのバージョンの上げる方向で頑張ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問