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

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

jupyter-php環境を構築してみた

#はじめに
Virtualboxで稼働中のCentOS8に、jupyter-PHP環境を構築してみたので、その備忘録として残しておきます。
※本環境では、jupyter-PHPで使用するPHPは、brewでインストールした最新バージョン「7.4」を使用するものとする。

#前提条件

・OS環境は、Virtualboxで稼働中のCentOS8.1です。以下、OS詳細情報となります。

“`php
# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
“`

・Virtualboxのネットワーク設定は、「NAT」「ホストオンリーアダプター」で構成。

・OSの初期設定が完了していること。

・jupyter環境が構築済みであること。
※私の環境ではAnacondaの中に含まれている、jupyterを使用。詳細は、[これ](https://qiita.com/yes_dog/items/54e24261331ef7895160)を参照してください。

・Linuxbrewの環境が構築済みであること。
Linux

元記事を表示

初めてのWEBアプリ作成(1)

#はじめに
 初めまして、RHEMS技術研究室所属の白瀬です。
今回は初めてWEBアプリ作成としてTrello風ToDoリストを作成するまでの工程を投稿していこうと思います。間違った点がありましたらご指摘いただけると嬉しいです。
環境はmacのdocker,iTerms2を使用しています。
#コンテナ構築
 nginx・PHP・MYSQLのコンテナの構築をdockerで行いました。!
今回はnginxとPHPの連携させずに作って行きます。
![(無題).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/562494/7f5b8adb-c241-e781-fe5b-e839b10d8b47.png)
#全体のディレクトリ
“`
├── docker-compose.yml
├── nginx
│ └── nginx.conf
├── php
│ ├── Dockerfile
│ └── php.ini
├── mysql
│ └── data
└── www
└── html

元記事を表示

PHPでGoogle Calendar API を使って空き時間を抽出してみた

# PHPでGoogleカレンダーから空き時間を抽出するプログラムを書いてみた

# 背景
 筆者は現在就職活動中なのですが、たびたび**LINEやメールで「直近で空いている日程をいくつか教えてください」**と言われることがよくあります。
 元々自分がスマホで字打つのがあんま好きじゃないのもあって、そのたびに**毎回Googleカレンダー見て、空いてる日程をスマホで打ってまたGoogleカレンダー見て…**というのが面倒だったのでGoogleカレンダーから空き時間を抽出するプログラムを作ろうと考えた次第です。

# 概要
 GoogleカレンダーAPIのFreebusyをPHPで叩いて空き時間を抽出します
 本稿では、翌日から2週間以内の10:00~20:00の間で空いている時間の取得を目標とします。
 現状、開始時刻と終了時刻を入力した予定のみ対応しており、「全日」の予定には対応していないため、今後対応予定です。

# 前提
– 0,1のビット演算が分かる
– PHPをググりながらなら書ける
– GoogleカレンダーAPIをPHPで利用するための準備が済んでおり、予定の追加や取

元記事を表示

PHP: ダブル・シングルクオートの違い

$test = “test”;

シングルクオートは文字として認識してくれる
var_dump(‘シングル: $test’);

ダブルクオートは変数として認識してくれる
var_dump(“ダブル: $test”);

JSの場合(変数として認識してくれる)
let test = “test”
console.log(“ダブル:” + test);

元記事を表示

PHPでお問い合わせフォームを作る

W3SchoolsのPHPチュートリアルでお問い合わせフォームを作成しました。
https://www.w3schools.com/php/default.asp

###環境
PHP 7.3.6

###作成したページ
![first.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533114/124a2191-8969-9979-ac0e-f6ee2fec01b0.png)
見た目cssで整えています
###コード
“`php:index.php




PHP ContactForm


元記事を表示

ユーザーの論理削除(ソフトデリート)の実装手順

# はじめに
論理削除(ソフトデリート)の実装手順をメモします。

– バージョン
php: 7.2
laravel: 5.8
– Authは実装済みでユーザーも登録済みであること

# usersテーブルにdelete_atカラムを追加
下記コマンドでカラム追加用のマイグレーションファイルを作成する。

“`
$ php artisan make:migration add_column_softDeletes_users_table –table=users
“`

マイグレーションファイルを下記のように編集する。
up関数とdown関数に下記を追記する。

“`

元記事を表示

PHPだけでWordpressのDBダンプ

#概要
プレーンなphpファイル1本だけでDBダンプやってみました。
Wordpress用ですがwp-config.phpの代わりにdefineを設定すればほかのCMSにも応用可能です。

#注意事項
ローカル環境で興味本位に試した方法なのでレストア・セキュリティ考慮まったく無しです。
実際のサーバー環境での使用は激しくお勧めしません。
**もしこのプログラムをコピペして使用する際は何が起きても全て自己責任でお願いします。**

#実装
“`php:wp/dump/Terminator.php

元記事を表示

専門学校生がLaravelとjQueryで抽選機作ってみた(機能紹介編)

# はじめに
初投稿です!!
2019年の11月あたりから夏休み中に独学したLaravelで、成人式の交流会のために制作しておりました。
今回の記事は主に機能の説明をして、開発エピソードはまた今度にしていこうと思います。
[GitHubのリポジトリ]https://github.com/kbc18a11/Lottery
[実際に制作したもの]https://seizinshikilottery.herokuapp.com/
今回作ったもののトップページです。
![トップ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500157/8ee6649c-da34-6a65-3873-b9ed0bad955f.png)

#使用技術
* Laravel
* jQuery
* Bootstrap
* MySQL
* Heroku

#実装した機能
■ユーザー関係
ユーザー登録
ログイン・ログアウト

■大会関係
大会主催
大会検索
自ユーザー主催大会一覧表示

■当選関係
当選種類作成
当選種類編集
当選種類削除

元記事を表示

LaravelのMYSQLのコマンド一覧【随時更新予定】

# はじめに
MYSQLのコマンドを覚える度に記録しています。

# 目次
– MYSQLの起動
– MYSQLの接続
– データベースの選定
– テーブル名一覧
– テーブル内構成一覧
– テーブル内の保存データ一覧
– テーブルの削除

## MYSQLの起動

“`
$ sudo service mysqld start
“`
余談ですが、下記エラーが出るとMYSQLが起動していない可能性があります。

“`
$ SQLSTATE[HY000] [2002] Connection refused
“`

## MYSQLの接続

“`
$ mysql -u root
“`

接続に成功すると下記表示になります。

“`
mysql>
“`

## データベースの選定

“`
mysql> use データベース名
“`

## テーブル名一覧

“`
mysql> show tables;
+——————–+
| Tables_in_myhiking |
+——————–+
| admins

元記事を表示

【Laravel 7】便利そうな機能その1 簡単になったルートキー名のカスタマイズ

## 前提
id と name カラムをもつ Users テーブルがあるとする。

`/users/userのid` にアクセスしたとき、ユーザーの名前が表示されるようにするには、以下のように書く。

“`web.php

Route::get(‘users/{user}’, UserController@show);
“`

“`UserController.php

public function show($user)
{
return $user->name; //画面にユーザーの名前を表示;
}

// $user には User::find(指定されたID) が入る

“`

`/users/userのid` ではなく、
`/users/ユーザー名` みたいにアクセスしたいとき、
つまりキー名のカスタマイズをしたい表示ときはどうするのか?

## これまで(Laravel 6.xまで)のやり方

“`User.php
public function getRouteKeyName()
{
return ‘name’;
}

//

元記事を表示

>>>EOFについて

参考書を進めていて、

“`
$html = <<

なんやらかんやら


   なんやらかんやら

EOF;

“`

こんな文章がさも当然のように出てきた。
EOFとはなんぞや。

End Of File(エンド・オブ・ファイル)」の略で「EOF」だそうです。
そして具体的な使い方は、

“`
$変数 = <<<終了の文字列 「文字列を記述」 終了の文字列; ``` なんだってよ。

元記事を表示

Blade の {{ }} と {!! !!} とは結局どう違うのか、および特定のタグだけ許可したい場合

## この記事について

こちらの記事を拝読して興味が湧き、もう少し深掘りしたいと思ったので、書くことにしました。

[【Laravel】Bladeテンプレートの{!! !!}とは結局何なのか – Qiita](https://qiita.com/ike-taka/items/1c10c6ab52beaa687d61)

(@ike-taka さん、勝手に便乗してしまい申し訳ありません)

## はじめに

– Laravel: 6.17.1
– PHP: 7.3.11

Blade の `{{ }}` および `{!! !!}` ステートメントに関する公式ドキュメントの記載は以下のページにあります。

https://laravel.com/docs/6.x/blade#displaying-data

## {{ }} と {!! !!} の違い

`{{ }}` でくくった場合は `htmlspecialchars` でエスケープされる、 `{!! !!}` はされない、という違いではあるんですが、直接 `htmlspecialchars` を呼んでるわけじゃないんですね。

I

元記事を表示

【PHP+MySQL】改良恐竜登録ツール(PHP7.2.4+MySQL版)

###1.MySQL+PHPにおける恐竜登録ツール

#####画面例:開始画面(一定数以上、登録するとハイブリッドか非ハイブリッドを選べる)

![start_dino_mysql.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494408/92e6b6d8-fe7e-7e12-b8f8-16f1db8decfe.jpeg)

#####画面例:非ハイブリッド登録画面
![select_dino_mysql1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/494408/23bd4e0a-616a-7cdb-d394-37eadf0bddb2.jpeg)

#####画面例:ハイブリッド登録画面
SQLite3版との相違点は、生成元タイプを確定すると、そのタイプに属した恐竜名を指定することができる。
※[前回](https://qiita.com/knowledge87sun/items/36cb41d73e33e96b

元記事を表示

ComposerによるPHPパッケージ管理の基礎知識

# Composerとは

Composerは、PHPのパッケージ管理ツールです[^1]。

パッケージというのは、特定の用途のために作成されたプログラム群のことで、具体的にはPHPUnit(テスト・ツール)やCarbon(日付操作で使われる)などを指します。

[^1]: パッケージとは、特定の用途のために作成されたプログラム群のこと

## Composerを使うメリット

なぜComposerを使ってインストールするのか、というと、それは次のようなメリットがあるからです。

* パッケージをインストールする際、それが動作するために必要な他のパッケージも自動でインストールしてくれる[^2]
* インストールしたパッケージをファイル(composer.json)に記録するので、メンバと同じ開発環境を簡単に再現できる
* プログラム内でクラスを呼び出したとき、自動的にそのファイルを読み込んでくれるようになる(オートロード機能)
* インストールしたパッケージは決まったディレクトリ内に保存されるため、自分の作業結果と区別しやすい

[^2]: 必要な他のパッケージもインストールすることを

元記事を表示

Laravelの外部キー制約でハマった話

#はじめに
1. Laravel初心者につき、お手柔らかに。
2. 自分がハマってしまったので備忘録として。
3. 「間違ってる!」、「○○したほうが良い!」みたいなことは教えてください。

# ハマったこと
マイグレーションファイルを作成中のこと。外部制約キーを記述し、いざ`$ php artisan migrate`をすると、SQLSTATE[HY000]: General errorのエラーが。
参照元のテーブルや型の部分で間違いがあるのかと思い何度も確認したが間違いはなさそう。

# 原因
結論から述べると、マイグレーションファイルの順番(作成の順番)がまずかったようです。
最初のマイグレーションファイルがこれ↓
スクリーンショット 2020-02-28 17.12.51.pngisset について

##issetを使う機会が多かったのでメモを残しておきます。

###issetとは
変数にnull以外の値がセットされているかどうか検証する。

まず、3つの変数を初期化しておく。

“`php:qiita.php
$a = ‘a’;
$b = null;
$c = [‘aa’=>’a’, ‘bb’=>null];
“`

以下の状態でNoticeエラーが発生するのはどれか。

“`php:qiita.php
echo $a.”\n”; //a
echo $b.”\n”;//出力なし
echo $d.”\n”;//Noticeエラー
echo $c[‘aa’].”\n”;//a
echo $c[‘bb’].”\n”;//出力なし
echo $c[‘dd’].”\n”;//Noticeエラー
“`

変数d,c[‘dd’]は初期化されていないので参照した瞬間にNoticeエラーになる。

以下の関数を定義

“`php:qiita.php
function echoBool($bl){
if($bl) echo ‘YES’;
else echo ‘NO’;
}
“`

元記事を表示

laravel6のbladeファイル内で変数・配列を新規作成する。

# bladeファイル内で変数・配列を新規作成する。
“`php
{{– laravel6標準ではphpタグでしかできない。(blade構文を拡張して追加・作成する方法はある) –}}

{{– 配列の場合は、値の確認もphpタグで –}}

{{– 配列の場合下記ではエラーになる。恐らく後からblade内で追加した配列だからだと思われる。 –}}
{{ dump( $v ) }}

{{–しかし下記はエラーにならない –}}
{{ dump( $v[0] ) }}
“`
### 参考情報
– [Laravel5.4ではbladeファイル内で`{{–*/ $hoge = ‘hoge’ /*–}}`といった書き方で変数代入できない – Qiita](https://qiita.com/madayo/items/667beaec1121ec6dd13a)
– [php – Bladeテンプレートで変数を設定したい – スタック・オーバーフロー

元記事を表示

PHPの有名どころライブラリ群メモ

# PHPの有名どころライブラリ群メモ

# PSR実装

## PSR-3 Logger

– [monolog](https://packagist.org/packages/monolog/monolog)
– 最古のPSR-3実装。とりあえずこれを使っておけば問題ない
– Symfony2で採用された

## PSR-7 Http Message

– [laminas/laminas-diactoros](https://packagist.org/packages/zendframework/zend-diactoros)
– 昔は [zendframework/zend-diactoros](https://packagist.org/packages/zendframework/zend-diactoros) だった
– [guzzlehttp/psr7](https://packagist.org/packages/guzzlehttp/psr7)
– HTTPクライアントとしてguzzleを使う機会は多い
– [slim/psr7](https:/

元記事を表示

LIMIT句を使用してページネーションに必要な件数分を取得する図

“`sql
LIMIT 取得開始行, 取得件数;
“`

「**取得開始行**」は0から始まる数値を指定するため、仮に11〜15までの5件分を取得したい場合は以下のような指定になる。

“`sql
LIMIT 10, 5;
“`
4ページ目のデータ行を7件分取得する場合のSQL

“`sql
SELECT * FROM members LIMIT 21,7;
“`

仮にこの取得したパラメータ「4」から「21」を指定するための逆算を行う。
そのためには、**過去のページ数に表示件数分を掛ける**必要がある。

![](https://i.imgur.com/fnlFUN6.jpg)

![](https://i.imgur.com/tyx3Y0k.jpg)

“`php
// offsetとは基準値から差分を相殺した値のこと
$offset = ($page – 1) * 7;
“`

これで各ページごとに、毎回必要な件数分のデータだけを取得することができるようになる。

元記事を表示

【PHP】比較演算子「==」と「===」の違い

#はじめに
業務でphpを使い始めてから4ヶ月目ですが、正直なんとなくの知識でコードを書いていたので、あやふやだった部分を学習し記事にすることで理解を深めていこうと思います。

#「==」 と 「===」の違い
2つの値が等しいかどうか確認する場合、基本的には`「==」`ではなく`「===」`を使いましょう、とネットのどの記事にも書いてありますがそれは一体なぜなのか??
ここで、整数型の1と文字列の1を比較して見ます。

“`php5
var_dump(1 == ‘1’); //bool(true)
var_dump(1 === ‘1’); //bool(false)
“`

このような結果となります。
なぜ`「==」`の方はtrueとなってしまうのか??
それは`「==」`だと比較する際にphpが自動キャストを行うからです!

#自動キャスト
キャストというのはデータ型の変換を意味します。
phpは異なる型同士で演算を行う場合、自動キャストを行います。
特に文字列型はキャストがされやすい型で、「数値っぽい文字列」数値型にキャストしてから

元記事を表示

OTHERカテゴリの最新記事