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

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

オブジェクト指向プログラミング(素人が浅い知識でまとめさせていただきました)

#クラスとインスタンス(オブジェクト指向)
クラスはくくり、インスタンスはくくりのルールで定義された物。
イメージは車というクラスからプリウスというインスタンスを生み出すって感じ。

#####クラス内でやる事
インスタンスが持っておくべき変数や関数を定義する。
またインスタンス作成時にどのように初期設定をするか書かれる。
→コンストラクタ関数を定義し、引数をもらって初期値を作れるようにする。
→インスタンス作成時に引数として値を渡して、各インスタンスに変数の初期値を入れる。

“`Java
class Person {

private Stirng name; //ここではインスタンスに必要な変数が用意されている。

Person(String name, …) { ////()内に必要な引数を入れられる。インスタンス作成のための初期設定がいろいろ書かれる…
}

public void detailData() { //ここでインスタンスに必要な関数が書かれる
}
}
“`

#####補足
・クラス内で書かれているthisは、作られたこのインスタンス自身

元記事を表示

Laravel始める 第1回 -全体の開発の流れと銀ちゃんの危機一髪について-

# 将来が心配なのでLaravel始めました
Laravelを勉強し始めた理由を話すと長くなるので結論だけ言うと、Laravelを勉強しようと思ったのは、

**永住権取るために今は寿司屋で働いてるけど、その後の将来が心配になったからなのだ!**

って。え?何それ?
よくわからんがいろいろあったんだなぁ、と思ってそぉっとしておいてほしい。

今回参考にしたのは[Laravel入門 – 使い方チュートリアル – – Qiita](https://qiita.com/sano1202/items/6021856b70e4f8d3dc3d)という記事。
これをやってみて、将来、私はこれを仕事としてやっていけるのか、試してみようと思うのだ。
ちなみに、結構前にRailsを1年ぐらい自学自習した経験がある。ちょいちょいRailsとの共通点とか相違点なんかを感想として述べるようなマネごとをしようとすることがあるかもしれないが、先に言っておくと、Railsの理解は浅い。

あと、この記事のコンセプトは、「素人がQiitaの記事読んでLaravel勉強した時にいっぱい躓いてズッコケて大変でした体験記

元記事を表示

laravel でAPI作成

#LaravelでAPIを作成する
CRUDとか、ルーティングとか、なんとなくはわかってるけど、
「APIを叩く」と言われても、APIを…叩く…?というレベルでピンとこない初学者が
とりあえず見様見真似でAPIを作成したので備忘録。
#API作成の手順
**1. テーブル(マイグレーションファイル)を作る**
**2. モデルを作る**
**3. コントローラーを作る**
**4. APIのルーティングを追加する**

案外これだけ。API作るってどんなけ難しいんや…と思ってましたが
普通の実装となんら変わらんでした。データをJSON形式で返すのでViewは不要。

#1. テーブル作成
早速、順を追って作成していきます。
今回はサーバ側でバージョン管理用のテーブルを作成して、
そのデータを別媒体でも取得できるような簡単なAPIを作成しました。

“`
$ php artisan make:migration create_ver_table
“`
migrationファイルの中身はこんな感じ。
最新バージョンと最低バージョンあればいいでしょってことでカラムは至ってシンプルに。

元記事を表示

Fatal Error “opcache.preload_user” has not been defined

## 問題

opcache を有効にしてアクセスすると次のエラーが発生しました。

“`
Fatal Error “opcache.preload_user” has not been defined
“`

## 原因

root ユーザーでプリロードするのは、セキュリティ上の理由から禁止されているそうです。

## 対策

`php.ini` に下記の設定を追記

“`ini:php.ini
opcache.preload_user = www-data
“`

`opcache.preload_user` はPHP7.4から追加されたそうです。

## 参考

– https://www.php.net/manual/ja/opcache.configuration.php#ini.opcache.preload-user

元記事を表示

Laravel 論理削除を行う

# 目的

– Laravelの機能実装で論理削除を勉強したためまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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 | Homwbrewを用いて導入 |

# 物理削除

元記事を表示

【PHP初心者】ところでtraitってなに?

PHP初心者ですが、traitというものをちょこちょこ目にするんですが、
意味わからなかったので、簡単にまとめてみました。

#trait(トレイト)
PHPバージョン5.4.0以降で使える、コードを再利用するための機能。
PHPでは多重継承ができないが、`トレイトを使うことで多重継承のようなことができる。`
##トレイトの宣言
“`php
trait トレイト名{
// 処理
// メソッド、プロパティ、staticメンバを定義できる。
}
“`

##トレイトの使い方
“`php

class クラス名{
// 複数のトレイトを使用する場合は、カンマ区切りで書く
use /*トレイト名, トレイト名2*/;
}
“`

**use トレイト名**とすれば、クラスを継承したときのようにトレイトのメンバを引き継ぐ事ができる。
###●継承とトレイトを同時に使い、親クラスとトレイトの両方が持つ同名メンバを呼び出した場合。
`親クラスで定義されているメンバより、トレイトで定義されているメンバが優先さ

元記事を表示

【質問】フリマアプリの販売管理の仕組み構築に関して

初めての投稿です!
開発に関しては初心者で、現在勉強中のものです。

タイトルにある件で質問させていただきたいのですが、
メルカリやラクマ、ヤフオク、paypayフリマなど、フリマアプリの一括販売管理をしたいと思っています。

元々は職歴としてアパレルECの業界に携わっていたのですが、
アパレルブランド用には在庫管理ツールがいくつもあるので、
今回個人的に使えるような仕組みが作れないかと思い、考えております。

超ど素人なので全く知識がなく恐縮なんですが、
①販売中・売り切れがぱっと見でわかる
②通知がくる
まずはこの二つがしたいことです。

スプレッドシートで管理、Slackで通知受け取るとかそういったものでも問題ないので、
やり方を教えていただければと思っております。

※将来的には出品管理

ちなみに1点懸念としまして、
過去に一括で出品から売上管理までできるようなアプリもあったようなのですが、
現在はないようです。
※何か問題があるので作成すること自体がダメなのでしょうか、、、?

目的は私個人の販売管理や効率化の部分なので、
そういった問題ない範囲でできたら嬉しいなと思ってお

元記事を表示

Laravel 7.4で認証関連機能を認証を含むアプリケーションを構築する方法

## 参照

* 公式マニュアル
* [Laravel 7.x 認証](https://readouble.com/laravel/7.x/ja/authentication.html)

* Laravelは[古いバージョン](https://qiita.com/LowSE01/items/0014ffea28e4adcada9d)の時代から認証関連機能を容易に構築できたが、最近のバージョンではもっと簡単になっているらしい。

“` 公式マニュアルより抜粋
Tip!! さくっと始めたいですか?
真新しくインストールしたLaravelアプリケーションにlaravel/ui Composerパッケージをインストールし、php artisan ui vue –authを実行してください。
データベースをマイグレーションし、http://your-app.test/registerかアプリケーションに割り付けた別のURLをブラウザでアクセスしましょう。
これらのコマンドが、認証システム全体のスカフォールドの面倒を見ます。
“`
* マニュアルの頭にこう書いてあるものの

元記事を表示

GETとPOSTの違い

##GETとPOSの違いについて超簡単にまとめた

どちらもサーバに値を渡す時に使う。

###GET
URLにパラメータを付加して、渡す。そのため、文字制限があったり、共有や保存ができる。
安全性に弱いため、大切な情報は扱わない。

###POST
パラメータが見えづらく、データ量も多い。
GETより安全であるため、フォームなどの情報を渡すときは使う。

元記事を表示

経路列挙モデルのデータをJSON形式の木構造にする

##はじめに
今回、経路列挙モデルでデータベースに格納したデータをプログラムで扱いやすい構造に作り変えます。

Vue.jsで遊ぶことが多いのでフロント側でも扱いやすいJSONにしたいと思います。

新卒で上司に
「Laravel勉強しといて」
と言われたので練習程度にECサイトを作っている際、カテゴリーの構造化の部分で経路列挙モデルを取り入れてみたいと思いました。

そのため実装したコードの一部分にLaravelの機能があります。

##注意
Laravelの学習中に遭遇した課題であり、調べてもあまり記事が見つからなかったのでとりあえずメモ的なものとして投稿しております。
そのため雑な紹介となっています。
Laravelを使っていないソースに書き直すことはおそらくないと思います。
ご了承お願いします。

##準備
| | バージョン |
|:———–|————:|
| Laravel | 7.2.0 |
| PHP | 7.2.15 |
| MySQL | 8.0.16 |

##データの内容
“`

+—-+-

元記事を表示

【Laravel】画像を編集してDBとローカルに登録する

##`やりたいこと`##

– laravelでユーザーが画像を登録する際に自動的にリサイズして保存される
– データベースとローカルファイルに同時に保存する
– シンボリックリンクを張り画像表示できるようにする
– Intervention Imageを使う

##`前提`##
– データベースは作成済み
– Userモデルは定義済み

##`進めかた`##
– Intervention Imageのインストール
– Controllerの作成
– viewの作成
– シンボリックリンクを張る

Intervention Imageをインストールする

コマンドでプロジェクトディレクトリに移動してから

“`php
$ composer require intervention/image
“`
Laravel構成ファイルconfig/app.phpを開き、次の行を追加します。

“`php:config/app.php
‘providers’ => [
// ~~~~ 省略 ~~~~
Intervention\Image\ImageServiceProvid

元記事を表示

Laravel 7.4でデバッグバーを使用する方法

* [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar)というパッケージがあるのでこれを使用する。

## barryvdh/laravel-debugbarをインストール

* compose

“` console
cd your/laravel/project/path
composer require barryvdh/laravel-debugbar
“`

## config値を設定

### config/debugbar.phpを作成。

* 下記のコマンドを叩くと、`config/debugbar.php` が作成される。

“` console
cd your/laravel/project/path
php artisan vendor:publish –provider=”Barryvdh\Debugbar\ServiceProvider”
“`

### config/app.php

* config/app.phpの’debug’項目値をtr

元記事を表示

【PHP】『メモ』3項演算子(長い恐竜名はどっち?)

###0.はじめに

この3項演算子、何かの暗号みたいですよね。
2つのプルダウンに表示される恐竜名のうち
各プルダウンで1匹を選んで、恐竜名の長さが長い方を\$max_strとする。
一つ目のプルダウンで選択した恐竜、2つ目のプルダウンで選択した恐竜、max_strを表示する
(中途半端な意味のない)プログラム。
3項演算子を使いたいために作成したプログラム。

“`
3項演算子の書式

(条件) ? (条件が真のときの処理) : (条件が偽の時の処理);
“`

###1.コード例(選択画面)

“`php:3kou_enzan.php



dinosor

3高演算子 恐竜選択

好きな恐竜を選んでね。


元記事を表示

DockerのMySQLとPHPを連携

自分用備忘録。

DB接続。

hostにはdocker-compose.ymlに記載のコンテナ名(今回はmysql)を指定。
ユーザー名、パスワードも適切なものを入力。

“`php

function dbConnect() {
//DBへの接続準備
$dsn = ‘mysql:dbname=mysql_database;host=mysql;charset=utf8’;
$user = ‘mysql_user’;
$password = ‘mysql_pw’;
$options = array(
// SQL実行失敗時にはエラーコードのみ設定
PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,
// デフォルトフェッチモードを連想配列形式に設定
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
// バッファードクエリを使う(一度に結果セットをすべて取得し、サーバー負荷を軽減)
// SELECTで得た結果に対

元記事を表示

Laravel Authの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 | Homwbrewを用いて導入 |

# 実施するに当たっての

元記事を表示

Dockerのmysqlに接続する&Sequel Proから接続する

備忘録として書きます。自分用。

# 環境

を参考にDockerを用いてphpの開発環境を構築。

# Dockerのコンテナに入る
“`terminal
$ docker-compose up //Docker立ち上げ
$ docker exec -it [mysqlのコンテナ名] bash //DBコンテナに入る
# mysql -u [ユーザー名] -p
“`


の「その他使い方メモ」参照。

docker-compose.ymlに記載されている情報。

Host: 127.0.0.1
user: mysql_user
password: mysql_pw
Database: mysql_database

によってSequel Proと連携。

`show databases;` や `show tables;` で連携を確認。

元記事を表示

【Laravel】複数条件のキーワード&絞り込み検索フォームを作る。(複数テーブルから取得)

はじめに。出来上がりはこんな感じ。
![スクリーンショット (18).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574195/87867c6e-722c-689d-fde1-47b94516f42f.png)

##`やりたいこと`##

– laravelで検索フォームを作る
– 曲名とアーティスト名を入力したらキーワード検索&絞り込みしてDBから取得する

##`前提`##
– データベースは作成済みとして進めます

##`進めかた`##
– テーブルの作成
– Controllerの作成
– viewの作成

テーブル構成

####artistsテーブル

|id|name|
|—|—|
||||
||||
||||
####songsテーブル

|id|name|artist_id|
|—|—|—|—|
||||
||||
||||

Controller

“`php:SongController.php

元記事を表示

【Laravel】bladeで変数の存在確認する方法

「0」,「null」,「””」 をどうとらえるか↓↓↓

|関数 / 項目|$a = 未定義|$a = NULL|$a = ””|$a = 0|array();|
|—|—|—|—|—|—|
|$a == Null|true|true|true|true|
|$a == “”|true|true|true|true|
|$a == 0|true|true|true|true|
|$a === Null|true|true|false|false|
|$a === “”|false|false|true|false|
|$a === 0|false|false|false|true|false|
|is_null($a)|true|true|false|false|false|
|isset($a)|false|false|true|true|true|
|empty($a)|true|true|true|true|true|
|!empty($a)|false|false|false|false|false|

$textがnullの場合Helloが表示される

元記事を表示

今月の日付を出す。

来月の日付を出すにはどうしらしいんだろう?

“`php:output2.php
puts ‘code with syntax’

日にち

“`

元記事を表示

さくらVPSにDrupal8のディストリビューション Lightning をインストールしたメモ

さくらVPSのLAMPスタートアップスクリプトはうまく動作していないようなので、スクリプト内を参考にしてインストールしたりするも、CentOS7系ではphpが5系になってしまったりで後々苦労するようだ。

結局自分でなんとかするしかない。
スクリプト冒頭で

“`
yum -y install expect httpd-devel mod_ssl php php-devel php-pear mysql-server php-mbstring php-xml php-gd php-mysql

“`
が実行されているが、php系はいらんので、

“`
yum -y install expect httpd-devel mod_ssl

“`
でとりあえず。

##PHPのインストール

普通にyumで入れると5系になってしまうのでリポジトリを指定してインストールする。

“`
yum -y install –enablerepo=remi,remi-php73 php
“`

以後、php73のリポジトリを指定してインストールしていけば、大体うまくいった。

##MySQ

元記事を表示

OTHERカテゴリの最新記事