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

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

PHP 実行時に選択肢を出したい(標準入力)

やりたいこと

今回やりたいこととしては、PHPファイルを実行して下記のような選択肢を出したい。

“`
$ php sample.php
sample.phpを実行しますか? (y/n)
“`

こいつを作ってみたい。

恐らく、『PHP 標準入力』などでググれば出てくる。

実践

簡単な処理を書いてみました。

“`sample.php

“`

下記でできるみたいですね。

“`
$anser = trim(fgets(STDIN));
“`

元記事を表示

Laravel 勉強中のAPIについて超基礎部分を簡単にまとめる

# 目的

– APIについて勉強中であるが、知識として溜まってきて整理が必要なのでまとめる
– ※APIは難しいものではないので気楽に読んでいただけたら幸いである

# 実施環境

– ハードウェア環境(下記の二つの環境で確認)

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン

元記事を表示

PHP デストラクタの検証

デストラクタについて書いていきます。
こいつもインスタンス化した段階で呼ばれます。

あんまり使っているところは見ないのですが、
知識として入れていきます。
基本的に、処理の最後に呼ばれる印象です。

ざっくりした理解なので、実際に書いていきます。

“`test_sample.php

“`

“`classTest.php

“`

“`
・実行結果
Fist:メッセージ
Last:メッセージ
“`

では、他のメソッドがある前提で検証していきます。
classTestクラスのsampleメ

元記事を表示

PHP コンストラクタの検証

1.constractの挙動

コンストラクタメソッドはよく使います。
個人的には『一番最初に呼ばれるメソッド』というざっくりした印象でした。
調べたところ、インスタンス化した段階で呼ばれます。

ではまず、シンプルなコードで試してみましょう。

“`test_sample.php

“`

“`classTest.php

“`

“`
・実行結果
constructメッセージ
“`

2.コンストラクタを親・子クラスで書いたら

では、親クラスのコンストラクタが呼ばれるか、
子クラスのコンストラクタが呼ばれるか
見ていきましょう。

“`test_sample.php

元記事を表示

Cookieの削除の話

# はじめに
Cookieをプログラムで使用する時に、「Cookieの削除はいつから有効になるのか」ふと疑問思ったので、
軽く実験してみました。
おそらく、HTTPプロトコルについての基本がわかっている人はそんなの当たり前に知っているという人が多いでしょう笑

webアプリを開発時、Cookieの処理を実装しようとした時にどうするかを考えた時に、この処理の時はあるCookieを削除して、
その後の処理を分岐させたいというアイデアが出たのですが、それって多分できないよねって話になりました。

多分っていうのが気持ち悪かったので、PHPで試しに実験してみました。

# 環境
環境
PHP7
CakePHP3

# 実験

1. ブラウザに `Cookie名: name Cookie値: bellcrud` を登録する
2. プログラムで `Cookie[name]`をログ出力
3. プログラムで `Cookie[name]`を削除
4. プログラムで `Cookie[name]`をログ出力

“`CookiesController.php
public function in

元記事を表示

laravel-mix調査の備忘録

## 概要
Laravel-Mix調査で知らない単語がたくさん出てきたのでそれのメモ。
そもそもLaravel-Mixなんで使うの?って理由ですが

* 複数のjsファイルを一つにバンドルしたい
* キャッシュが原因でjs, cssの変更が反映されない問題を解決したい
* npmコマンド叩きたい(今の主流はyarnらしいですが…)

上記のような理由です。

参照ページ

* https://qiita.com/minato-naka/items/0db285f4a3ba5adb6498
* https://qiita.com/minato-naka/items/bfc3bbd9a388084e6f17
* https://qiita.com/kamykn/items/45fb4690ace32216ca25
* https://readouble.com/laravel/6.x/ja/mix.html

## Laravel Mixとは
Laravel 公式ドキュメントより
`
Laravel Mixは多くの一般的なCSSとJavaScriptのプリプロセッサを使用し、Lar

元記事を表示

Laravel 7 バッチ処理でusersテーブルのメールアドレスにビューファイルをベースとしたメールを送る

# 目的

– ビューファイルを用いたメールをバッチファイルから送信する方法をまとめる

# 実施環境

– ハードウェア環境(下記の二つの環境で確認)

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homw

元記事を表示

Windows10 home +VirtualBox + Vagrantの仮想環境にCentOS6 + Apache2.4 + PHP5.3 + MySQL5.5を入れる

## Windowsの設定
`Windows home`ならBIOSを開いて、仮想化支援機構を有効化し、`Hyper-V`を無効化する。
### BIOS
基本的というか大体のPCでは下記の手順でBIOSにアクセスできる。
BIOSにアクセスできなかったら、各メーカーやPCの製品名のBIOSへアクセスする手順を調べる。

**1. `Shift`キーを押しながらシャットダウン。**
**2. `F2`キーを押しながら起動**
**3. `Advanced`タブの`CPU Configuration`欄にある`Intel(R) VirtualizationTechnology`を`Enabled`にする**

**3**はメーカーやBIOSによって名前などが異なることがあるので、記載されてなかったら調べる。

### Hyper-Vの無効化
**1. 管理者権限でを`コマンドプロント`を開いて、下記のコードを実行する。**
コードは[Win10にVirtualBox+Vagrantを用いた環境構築する為の下準備](https://qiita.com/hein946/items/cc44a

元記事を表示

MacにMAMPをインストールする

# 概要
自宅のMacにWebサーバーを立ち上げるため、MAMPを利用してみました。
### MAMP とは
– Mac
– Apache
– MySQL
– PHP

の略と言われてるようですが、Win版もあるし、公式ページに特にこの事についての記載が発見できず、正確な情報は不明です。

# インストール手順
## パッケージのダウンロード
まずは、MAMP公式サイトからパッケージをダウンロードしましょう。
https://www.mamp.info/en/
公式サイトのFreeDonwloadをクリック
![20190601171820-1024×725.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/142886/e5a94665-c1d3-9fde-0525-a13b59ed7c35.png)
Downloadページで mac のパッケージを選択
![20190601171827-1024×725.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

Laravelのアクセサ

##はじめに
例えばviewで人の氏名を実装する時`苗字+名前`といちいち実装するのは手間がかかりますよね。
今回のお題であるアクセサというLaravelの機能を用いれば、Modelに`苗字+名前`と定義しておくだけで、viewで呼び出す時は`氏名`で一気にフルネームを呼び出すことができます。

##アクセサを使って実装する

###そもそもアクセサとは
>アクセサを定義するには、アクセスしたいカラム名が「studlyケース(Upper Camel Case)」でFooの場合、getFooAttributeメソッドをモデルに作成します。以下の例では、first_name属性のアクセサを定義しています。first_name属性の値にアクセスが起きると、Eloquentは自動的にこのアクセサを呼び出します。
[Eloquent:ミューテタ 7.x Laravel](https://readouble.com/laravel/7.x/ja/eloquent-mutators.html)

Laravelの公式ドキュメントには上記のように定義されています。
簡単にまとめるとModelに`get

元記事を表示

header(Location)へパラメーターIDを使用したい時

header(“Location: index.php?=id”.$REQUEST[‘id’]) ;としてやると使用できる。

この時()内はシングルクォーテーションではなくダブルクォーテーションでないと動作しないので注意!

元記事を表示

Laravelのログイン機能にSNS認証を追加する(socialite)

## socialiteでSNSログインを実装

Laravelで、SNSのアカウントを使ったログインの実装をした時のメモです。

### socialiteとは

[soscialite](https://laravel.com/docs/7.x/socialite)とは、Laravelで簡単にOAuth(SNS認証)を可能にするパッケージツールです。

はじめに、composerを使って`socialite`をインストールします。

“`
$ composer require laravel/socialite
“`
## コンフィグレーション

Socialiteを使用する前に、アプリケーションが使用するOAuthサービスの認証情報を設定します。

### services.phpの設定

認証情報を必要とする各プロバイダーの設定を行います。

“`php:config/services.php

return [

‘github’ => [
‘client_id’ => env(‘GITHUB_CLIENT_ID’),
‘cli

元記事を表示

Gutenberg で生成されてしまう空の

タグを the_content() 読み込み時に削除する方法

WordPressの Gutenberg エディターでは、新規ブロックが自動生成されて、空の `

` が保存されてしまうことがよくある。

この問題には、functions.php などに次のコードを追記することで対処できる。

“`PHP
// the_content 用フィルター.
add_filter(
‘the_content’,
function ( $content ) {
$content = str_replace( ‘

‘, ”, $content );
return $content;
}
);
“`
これで、`the_content()` で、`

` が削除された状態の記事本文が読み込まれるようになる。

なお、`get_the_content()` は、フィルターが適応されていない状態の記事を取得するので、要注意。

## 関連ドキュメント

– [関数リファレンス/add filter – WordPress Codex 日本語版](https://wpdocs.osdn.jp/%E9%96%A2%E6%

元記事を表示

PHPで将棋のUSIプロトコルに挑戦

## はじめに

PHPで将棋のUSIプロトコルに挑戦します。[→JScript版はこちら](https://qiita.com/economist/items/83badfdde88333a56d7b)
将棋ソフトは各自用意してください。

## USIプロトコルの例

USIプロトコルの例です。これをPHPで書いていきます。

将棋ソフトと通信を開始し、初手76歩とした局面を1秒間検討し、評価値や読み筋を取得するのが目的です。
“>“で始まる行はコマンド送信、それ以外は受信となります。

~~~
>usi
id name NNUE-v1.0 64SSE2 (based on YaneuraOu 2018 Otafuku 4.82)
id author by yaneurao, extended by ynasu87
option name Threads type spin default 4 min 1 max 512
option name Hash type spin default 16 min 1 max 1048576
option name MultiPV t

元記事を表示

Laravelでメールを送信する

[参考:Laravelのmailableクラスでメール送信を行う[導入/入門編]
](https://www.ritolab.com/entry/38)

### mailableクラス
“`terminal
$ php artisan make:mail sampleMailClass.php
“`

を実行後、以下のように記述

“`laravel-project/app/Mail/sampleMailClass.php

元記事を表示

PHPのCallableについて完全に理解する

# はじめに

`Callable` という擬似型は `PHP 5.4` 系で導入されていたようなのですが、ある値が `Callable` かどうかがどのように決まるのかさっぱり理解できず、業務で使う機会もそんなになかったことから放置していました。

業務で使う機会が出てきたというわけでも全くもって全くないのですが、ふと考えてみたら完全に理解できた気がしてしまったので、ツッコミ覚悟で記事にまとめることにしました。

この記事ではどんな値を `is_callable()` に渡したら `true` を返されるのかを探っていきます。 `is_callable()` が `true` を返す値はそのまま `call_user_func()` , `call_user_func_array()` などに渡して呼び出すことが可能です。

`var_dump()` を含んだコードの動作確認は [paiza.IO](https://paiza.io/projects/new) で行っています。執筆時のPHPバージョンは `PHP 7.4.1` でした。

# この記事のスコープ外

「関数やクラスが

元記事を表示

ボタンを押した時に処理を実行させたい時

今回は投稿内容を編集し、編集完了ボタンを押したらdbの投稿内容を書き換える(更新する)というもの

if文で条件を指定してからデータベースへアクセスし書き換えるという流れ

prepare(‘UPDATE posts SET message=? WHERE id=?’);
$statement->execute(array($_SESSION[‘message’],$_SESSION[‘posts_id’]));
?>

HTML文(ボタンの部分のみ)

これで修正完了するボタンを押すとphpが処理される

元記事を表示

PHP LaravelをIISで稼働させる

PHP LaravelをIISで構築します。

OS:Windows10 Pro
Webサーバー:IIS10

IIS10でPHPを稼働させるには、「CGI」を有効にする必要があります。
「コントロールパネル」から「プログラムと機能」を選択します。
「Windowsの機能の有効化または無効化」を選択して表示されたウインドウから
「インターネットインフォメーションサービス」を選択して、
「World Wide Webサービス」-「アプリケーション開発機能」-「CGI」にチェックを入れて「OK」してください。

インストールが完了したら、IISマネージャーを立ち上げてください。

からNon Thread SafeのZIPファイルをダウンロードします。

ZIPを解凍したら、[php.ini-production]を[php.ini]にリネームしてコピーしてください。

php.iniファイルをエディタで開いて、以下の設定を追加・変更します。

fastcgi.impersonate = 1
fastcgi.loggin

元記事を表示

大阪府のコロナ追跡システムを考えてみる3

大阪府のコロナ追跡システムの開発費が80万円以内、14日間で納めるシステム開発続き。
初めての方は1からご覧ください。

#詳細設計(内部設計)
DFD(データフロー図)とデータベース設計書を作成する。

DFD
20753BFF-5B9F-428B-BB2B-A30F5D51651D.jpeg
事業者情報ばっかり。。。

##登録画面設計
Htmlを用いて事業者ごとに登録画面を作成する。

##データベース設計

###事業者管理テーブル
|名前|カラム名|データ型|制約|
| :– | :– | :– | :– |
|事業者ID|Store_id|char|Primary,Not NULL|
|事業者名|Store_name|varchar|Not NULL|
|登録日|Reg_date|date

元記事を表示

CircleCIについて

#前提
本日学んだことを書いていきます。

#本題

#CI(継続的インテグレーション)
変更されたソースコードがGitHubなどのリポジトリに提出(プッシュ)されるたびに自動でテストを行うことで、変更後のソースコードをリポジトリのメインライン(masterブランチなど)に統合(gitで言うところのマージ)可能な状態にする仕組み

#CD(継続的デリバリー)
メインラインのソースコードが変更されるたびに、自動で本番環境などにデプロイする仕組み

#RefreshDatabase
TestCaseクラスを継承したクラスでRefreshDatabaseトレイトを使用すると、データベースをリセットする

なお、トレイトは継承と似たPHPの機能で、汎用性の高いメソッドなどをトレイトとしてまとめておき、他の複数のクラスで共通して使う、という使い方をする

#テストのメソッド名
Laravelでは、テストにPHPUnitというテストフレームワークを使用する
PHPUnitでは、テストのメソッド名の先頭にtestを付ける必要がある
ここではindexメソッドのテストであるとわかるよう、testInd

元記事を表示

OTHERカテゴリの最新記事