PHP関連のことを調べてみた2020年02月13日

PHP関連のことを調べてみた2020年02月13日

selenium php-webdriver update

“`
$composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package facebook/webdriver is abandoned, you should avoid using it. Use php-webdriver/webdriver instead.
Generating autoload files
“`

version 1.8.0 から名前が facebook/php-webdriver から php-webdriver/webdriverに変わりました
jsonを書き換えます

“`composer.json
“require”: {
– “facebook/webdriver”: “^1.7.1”,
+ “php-webdriver/webdriver”: “^1.8.0”,
}
“`

アップデー

元記事を表示

?【CakePHP2】Error: Call to a member function dispatchMethod() on nullは環境設定で修正

## 環境
PHP 7.2.21
CakePHP 2.10.18

## やりたいこと
下記のエラーを修正

“`sh
Error: Call to a member function dispatchMethod() on null
#0 (Modelのファイルパス)(223): Model->__call(‘makeRoleTargetJ…’, Array)
#1 [internal function]: (対象のModel名)->__construct(Array)
#2 /(CakePHPディレクトリ)/Vendor/cakephp/cakephp/lib/Cake/Utility/ClassRegistry.php(169): ReflectionClass->newInstance(Array)
#3 /(CakePHPディレクトリ)/Vendor/cakephp/cakephp/lib/Cake/Console/Shell.php(316): ClassRegistry::init(‘(対象のModel名)’)
#4 /(CakePHPディレクトリ)/Vendor/

元記事を表示

PHP 勉強用メモ

クラスの中のプロパティやメソッドにアクセスするときには、 $this

元記事を表示

PHP オブジェクト指向 勉強用

勉強用メモです。

クラスがもつ変数をプロパティ
クラスがもつ関数をメソッド

元記事を表示

勉強用メモ ローカル変数 PHP

関数内で定義した変数はその関数内でのみ有効

元記事を表示

laravelで都道府県プルダウンメニューを表示させる手順

laravelで都道府県のプルダウンメニューを導入したのでその手順をメモします

## 都道府県名一覧表をつくる

configディレクトリ下に下記ファイルを作成。

“`php:pref.php
‘未選択’,
‘1’ => ‘北海道’,
‘2’ => ‘青森県’,
‘3’ => ‘岩手県’,
‘4’ => ‘宮城県’,
‘5’ => ‘秋田県’,
‘6’ => ‘山形県’,
‘7’ => ‘福島県’,
‘8’ => ‘茨城県’,
‘9’ => ‘栃木県’,
’10’ => ‘群馬県’,
’11’ => ‘埼玉県’,
’12’ => ‘千葉県’,
’13’ => ‘東京都’,
’14’ => ‘神奈川県’,
’15’ => ‘新潟県’,
’16’ => ‘富山県’,
’17’ => ‘石川県’,
’18’ => ‘福井県’,
’19’ => ‘山梨県’,
’20’ => ‘長野県’,
’21’ => ‘岐阜県’

元記事を表示

星5段階評価プルダウンメニューの作成手順

星5段階評価プルダウンメニューを導入したのでその手順をメモします

# configディレクトリ下にデータをつくる

“`php:score.php
‘☆’,
‘2’ => ‘☆☆’,
‘3’ => ‘☆☆☆’,
‘4’ => ‘☆☆☆☆’,
‘5’ => ‘☆☆☆☆☆’,
);
?>
“`

# ビューでプルダウンを表示する

“`php:create.blade.php

“`

# プルダウンで選択して送信したデータを取得する

## viewの記述(if文を使用する場合)
“`php:detail.blade.php
@if (取得した

元記事を表示

構造化データの読み込みにまつわる問題 〜evalインジェクション〜

XMLやJSONなどの構造を持つデータを保存や送受信できるように変換することをシリアライズと呼ぶ。
シリアライズは配列データを配列データとして保存できたりなど、配列の要素や構造が動的に変化するデータを扱う際などに使用される。
ここではシリアライズに関する脆弱性の一つであるevalインジェクションについて記載する。

#概要
プログラム言語にはevalと呼ばれる関数・機能があり、これは文字列(各言語のコード)を式として評価したのものである。
evalは使い方によって外部から送り込んだスクリプトが実行されることがある。
それをevalインジェクション攻撃と言い、そのような攻撃を受ける脆弱性をevalインジェクション脆弱性と呼ぶ。

###evalの例
**JavaScript**[(MDN)](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval)
>eval(string)

**PHP**[(php.net)](https://www.php.net/manual/ja/fu

元記事を表示

laravel migration カラム名変更(初心者向け)

phpについての初投稿になります!

リファレンスにも書いてありますが、つい忘れてしまうのでメモ程度に紹介します

laravel 6.x系です
osはmacです

# カラム名を変更、削除するには

ターミナルで

“`
$ composer require doctrine/dbal
“`

↑のコマンドを叩き、composerで”doctrine/dbal”

をインストールしましょう!(リファレンスに書いてあるので臆せずインストールしましょう!)

laravelはデフォルトではカラム名の変更や削除はできません!(なんでやねん!まぁなんか理由があるのでしょう)

で、ターミナルで

“`
$ php artisan make:migration rename_変更前のカラム名_to_変更後のカラム名_on_テーブル名_table –table=テーブル名
“`
とコマンドを叩きます(オプションの”–table=テーブル名”により、migtarionファイル作成時にテーブル名が追加され作成されます。また、migrationファイルの名前は正直適当でいいと思

元記事を表示

PHP クラスの定義とインスタンスの作成

# 目的

– クラスの定義方法とインスタンスの作成方法を記載する

# 用語

– クラス内で定義される変数: プロパティ
– クラス内で定義される関数: メソッド

# クラスの定義

– 下記にUserクラスを定義する。
– nameプロパティを定義する。
– Hi, i am プロパティとなるようなsayHiメソッドを定義する。

“`php
class User
{
// プロパティの宣言
public $name;

//constructの宣言
public function __construct($name) {
$this->name = $name;
}

// メソッドの宣言
public function sayHi() {
echo “Hi, i am $this->name”;
}
}
“`

# インスタンスの作成

– 先に定義したクラスの下で下記の行を記載する。

“`php
$miriwo = new User(“miriwo”);
“`

#

元記事を表示

WEBページに「Googleアカウントでログイン」を実装する

# 目次
– はじめに
– 目標
– クライアントIDを取得する
– クライアントサイドのコード(JavaScript)
– サーバサイドのコード(PHP)
– 実行してみる
– お世話になったサイト

## はじめに

WEBアプリを作っていて、「Googleアカウントでログイン」が実装できたので備忘録として残しておく。
実装にあたっては、[Googleの公式ドキュメント](https://developers.google.com/identity/sign-in/web/sign-in?authuser=1)を大いに参考にしました。動画も一緒に載っていて、日本人が解説しています。Japanese Englishですごく聞き取りやすくて助かりました。皮肉じゃないです。日本語の方がうれしいんですけどね
PHPとJSを使って実装しています。サーバサイドの言語は自分はPHPを使いましたが、公式ドキュメントにはNode.jsとJavaとPythonのコードも載ってました。自分はPHPしか試していません。

#### 必要なもの
– テキストエディタ
– サーバ(ローカル環境でも可、試し

元記事を表示

PHPに触れて5か月の学生がPHPerKaigi2020へ行ってみたときの話

#はじめに
 ある日気ままにネットサーフィンをしていたところ、こんな記事を見つけました。
[あなたが今年PHPerKaigi 2020に参加しなければいけない理由](https://www.phper.ninja/entry/2020/01/19/014417)
ふむふむ、2/9~11にかけてPHPerが一堂に集まる大きなイベントがあるのか~
予定は空いているな、で値段は…えっ最低でも参加料4800円か、少し料金は高いけど暇だし行ってみるか
ということでイベントへ参加することにしました。

#そもそもPHPerKaigiとは
>[PHPerKaigi2020公式ホームページ](https://phperkaigi.jp/2020/)より
>>PHPerKaigi(ペチパーカイギ)は、PHPer、つまり、現在PHPを使用している方、過去にPHPを使用していた方、これからPHPを使いたいと思っている方、そしてPHPが大好きな方たちが、技術的なノウハウとPHP愛を共有するためのイベントです。

つまりPHPが好きだったり、興味を持っている人ならだれでもオッケーだそう。

#行ってみ

元記事を表示

PHPerKaigi2020 スライドまとめ

# PHPerKaigiとは?

[PHPerによるPHPerのためのお祭り](https://phperkaigi.jp/2020/)です。
以下、敬称略。表示順は[採択Proposal](https://fortee.jp/phperkaigi-2020/proposal)順です。

# 2020/02/09

## [Deep Module in PHP](https://fortee.jp/phperkaigi-2020/proposal/023b24d7-4d36-42fe-9610-946e8e31f29b)

[itosho @itosho](https://twitter.com/itosho)
・https://speakerdeck.com/itosho525/deep-module-in-php

## [PHP で JVM を実装して、 HelloWorld を出力してみる](https://fortee.jp/phperkaigi-2020/proposal/270a697c-f838-4cd0-ae07-38e01bad1326)

[めもりー @m3m0

元記事を表示

php 配列 重複した要素の削除 array_unique()

##配列の重複要素を削除

array_unique()

“`php:qiita.php
$array = [“aaaa”,”wwww”,”eeee”,”aaaa”,”tttt”,”WWWW”,”eeee”];
$array = (array_unique($array));
//Array ( [0] => aaaa [1] => wwww [2] => eeee [4] => tttt [5] => WWWW )
“`
#####連想配列の場合
“`php:qiita.php
$array = array(
array(‘takuya’, ‘jun’, ‘yoshiko’, ‘miki’),
array(‘kazuki’, ‘aya’, ‘yoshiko’, ‘miki’),
array(‘takuya’, ‘jun’, ‘yoshiko’, ‘miki’),
);

$array = array_unique($array, SORT_REGULAR);
//Array ( [0] => Array ( [0] => takuya [1] =>

元記事を表示

【初Qiita】プログラミング2ヶ月目でリリース、3ヶ月間使われ続けるWebアプリ『SHISHA Log』

#1 プログラミングを初めて4ヶ月が経過しました。
はじめまして、赤岸叶恵です(Twitter@KKKEAS)
初めてQiitaに投稿します。当記事への訪問ありがとうございます!

私は現在G’s Academy TOKYOで未経験からプログラミングを学習しています。
ありがたいことに開発した『SHISHA Log』にユーザー投稿が50件集まり、形になってきたので備忘録としてこの記事を書いています。

#1.5 前提_シーシャ(水煙草)とは
シーシャ(水煙草)とは、イスラム圏を発祥とする喫煙具の一種です。
##仕組み
シロップ漬けしたタバコの葉をハガルという専用の容器に入れ、その上に熱した炭を置く。
炭で熱された味のついた煙を、ボトルに入っている水を通してホースから口に入れるという吸い方をします。ボトルに入っている水は紙巻き煙草でいうところのフィルターにあたります。
1台のシーシャで2時間ほど楽しめます。
![ezgif.com-resize (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51

元記事を表示

file_get_contentsが失敗する

以下のサイトのサンプルを自前の環境で実行しようとしました。
https://note.com/kazztech/n/ndb3a5468f299

呼び出しプログラムを実行したところ、以下のエラーになりました。
PHP Warning: file_get_contents(http://192.168.33.10:8000/api.php?num=10): failed to open stream: HTTP request failed!

このURL自体(以下URL)は表示できました。
http://192.168.33.10:8000/api.php?num=10
結果として、{ “status”: “yes”, “x114”: “1140”, “x514”: “5140” }と表示されました。

なぜエラーになるのでしょうか?

検索したところ、php.iniのallow_url_fopenの値の問題かもしれないとありましたが、これはOnでした。
WebサーバーはPHPのビルトインサーバーです。
PHPは7.1.33です。

補足1
絶対URLがうまく動いていないのかと思い、

元記事を表示

VSCodeのデバッグ中にDeepExitExceptionが発生したら

VSCodeでphp開発始めたところ、デバッグ中にDeepExitExceptionが乱発する自体に遭遇したので、原因と対策。

## 結論
### 原因
デバッグ中にコード修正すると、phpcsが実行され、その中でDeepExitExceptionを発生させています。仕様に近い。何か問題が起きている訳ではないです。
具体的には、内部的に実行されているphpcsのコマンド引数をパースするところ(Config.php内)で、例外スローされています。(この例外スローが適切なのかは疑問)

### 対策
VSCodeのブレークポイントで、Everythingのチェックを外すだけです。標準でEverythingチェック入っています。

## 開発環境
VSCode
phpcs & phpcbf
xDebug

元記事を表示

php繰り返し文

##はじめに
私は今までRuby,railsを勉強していましたが、転職活動の末phpを使用する企業へ入社しそうなので、新しくphpを勉強する事とした。

初歩的な事から勉強しているので、公開して人の役に立つというより自分の理解度を確認するための記事(自己満)となりますので、間違っている可能性が十分あるので気になった方はご教示いただけたら幸いです。

————————————————————

早速本題に入ります。
phpの繰り返し文について、やり方は2種類ある。
1つはwhile文。もう1つはfor文。順にコードを書いていきます。

#####やりたい事:1〜365の数字を繰り返し表示させる

##while文

 

“`

“`

これが基本の考え方で、実際コードを書くと、、、

“`

元記事を表示

CORS回避と、ReactからAPIへのPOSTリクエストが正常に処理されなかった話

# 目的
ReactからaxiosでPOSTのAPIを叩きたい。
## 環境
React:ローカルの開発環境 http://localhost:3000/、
API:PHPで書かれており、開発サーバにおいてある https://api.example.com/***
同じドメイン上に無い環境です。

## 状況

ReactからaxiosでAPIにPOSTリクエストを投げているが、CORSエラーで弾かれます。

また、axiosからPOSTリクエストが正常に投げられていない、もしくはPHPが正常にPOSTリクエストを受け取れていないような挙動をします。

こんな状況です。

私は基本的にPHPの開発がメインのため、Reactは初心者です。
もちろんaxiosも初めて使います。

javascriptでAjax処理は書いたことがあるものの、コピペで動けば良い程度の使い方しかしませんでした。

また、とりあえずの解決は出来たものの、各機能の仕様を理解した上での対策ではないため記事に誤りがある可能性しかありません。
ご理解ください。

## エラー1 CORSエラー
“`
Access

元記事を表示

phpunit8に上げたらPHPUnit does not appear to be installed.と言われた

プロジェクトでphp7.3、fuelphp1.8.2を使っています。
しかし、phpunitのバージョンが5.6と古く、もうすぐサポートが切れてしまうためバージョンアップした際に出たエラーの解決について書いていきます。

# 前提
バージョンアップが完了しているわけではありません。
怒られたので、それの解決方法だけです。
もしかしたら、別の方法があるかもしれないので、その場合は是非コメントお願いします。

# やったこと
本当はdocker内でコマンド叩いていますが、長くなってしまうので必要なところだけ抜粋します。
phpunitのバージョンアップに伴って依存パッケージの更新も必要だったため更新しています。

“`
./composer.phar remove phpunit/dbunit
./composer.phar remove phpunit/phpunit
./composer.phar remove phpunit/php-timer
./composer.phar require –dev phpunit/phpunit ^8.5.2
./composer.phar

元記事を表示

OTHERカテゴリの最新記事