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

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

PHP コンストラクタとは(簡易メモ)

# 目的

– LaravelやPHPのコンストラクタとはなんなのかを簡単にメモする。

# コンストラクタとは

– とあるメソッドの名前である。
– クラスからインスタンスを生成する(オブジェクトがnewによって作られる)時に自動で呼び出されるメソッドのこと。
– 戻り値はない。
– インスタンスを生成するタイミングで実行されるので、プロパティの初期化やクラス内部で使用するリソースの初期化などを行う。

# 記載例

– 下記にコンストラクタの記載例を記載する。

“`php

“`

元記事を表示

Laravel7を日本語化する方法

Laravel5,6,7に対応。
ログイン画面や、エラーメッセージ、確認メールなどを日本語化します:blush:

Laravelはデフォルトでは以下のような英語表記になっています。
これを日本語にしていきます。

スクリーンショット 2020-05-08 15.54.36.png

##app.phpの設定を変更する
プロジェクトフォルダのconfig/app.phpの**’locale’ => ‘en’を’locale’ => ‘ja’**に変更する。

“`php
/*
|————————————————————————–
| Application Locale Configurat

元記事を表示

最強のLaravel開発環境をDockerを使って構築する【新編集版】

お急ぎの方は [使い方](https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4#%E4%BD%BF%E3%81%84%E6%96%B9) からお読みください。

## 概要

[Laravelの開発環境をDockerを使って構築する](https://qiita.com/ucan-lab/items/17c806973e69792ada99) の記事を投稿してから1年以上経ちました。

イシューやコミットメッセージ等も英語で書くように意識したおかげで海外の人を含め多くの方々に使っていただきました。ありがとうございます?

これで完璧だと思った初回コミットから数えるとなんと155コミット?
コード直したら記事を直して…を繰り返してメンテしていたのですがちょっと手に負えなくなったので新編集版として改めて作り直すことにしました。

???「ここから始めましょう、イチから――いいえ、ゼロから!」

## リポジトリ

– https://github.com/ucan-lab/docker-laravel

スターをもらえると嬉しいです

元記事を表示

簡単に述べると、PHPの実体は

簡単に述べると、PHPの実体は、Webサーバに置かれるソフトウエアの [apache](https://www.scollabo.com/banban/php/apd_03.html#apache)モジュールとして動作するスクリプト言語を実行する環境を指します。HTML文書中に記述されたスクリプトを PHPが実行し、結果を HTMLデータとしてWebブラウザに出力する仕組みがあります。
その意味では、PHPを実行させるための Apacheモジュールを Webサーバに置かなければなりません。幸いなことに、Apacheは、世界中で最も普及しているオープン・ソフトであるため、ほとんどの Webサーバに実装されています。
■ PHPの生い立ち
1994年秋、Rasmus Lerdorf氏(グリーンランド生まれのデンマーク育ち) が自分の履歴書ページの閲覧者を調べるために作っていた Perlスクリプト 「Personal Home Page Tools」 を C言語で書き直し、HTMLフォームを扱える動的な Webアプリケーションのための機能 「Form Interpreter」 に拡張したのが

元記事を表示

Windows版PHPでのusleepは引数の値がどの辺りから結果が横這いになるのか

前回 “[PHP usleepより高い精度でスリープしたい](https://qiita.com/akebi_mh/items/735f563c1f484b14f64c)” にて

> Windowsではusleepに指定する値がある程度小さくなると結果が変わらなくなってくるので

と書きましたが、かなり以前に軽く試した程度でしたので、再度確認してみました。

##スクリプト##

確認に使ったスクリプトは以下になります。

~~~php:test.php
= 1; $l /= 10) {
for($sleep_mt = $l; $sleep_mt >= 1; $sleep_mt -= $l / 10) {
sleep(1);
$sleep_res[$sleep_mt] = sleep_loop($sleep_mt);
}
}

print “|argument | actual | ideal | accuracy|\n”;
foreach($sleep_re

元記事を表示

Laravel+GraphQL Lighthouse チュートリアル 後半

## チュートリアル

[前回](https://qiita.com/ucan-lab/items/e7c151133541fbeaebe9)の続きでLaravel+GraphQL Lighthouseチュートリアルを進めます。

## Agenda

1. フィールドにページネーション(ページャー)を追加
2. Eloquentモデルの作成と更新
3. サーバーに送信される値のバリデーション

所要時間: 10分程度

## 1. フィールドにページネーション(ページャー)を追加

https://lighthouse-php.com/master/api-reference/directives.html#paginate
こちらを参考に進めます。

“`graphql:graphql/schema.graphql
type Query {
# posts: [Post!]! @all
posts: [Post!]! @paginate
}
“`

スキーマ定義は自動的に次のように変換されます。
(これは書かなくてokです。)

“`graphql:graph

元記事を表示

Laravelのバージョンを確認する

プロジェクトフォルダにて

“`sh
php artisan –version
“`
もしくは

“`sh
php artisan -V
“`

:blush:

元記事を表示

必須モジュール gd がインストールされていないか、無効化されています。の対処方法

###WordPressのサイトヘルスになにか出ている…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/231874/0c649566-26be-0886-79e6-88c47103b11b.png)

herokuで稼働しているWordPressがどうもおかしい。管理者なら閲覧できるが、一般ユーザーが記事を見ようとするとエラーになってしまう。
これのせいだろうか??

###原因と対処方法
herokuにデフォルトで入っている拡張ライブラリにgdがないためだそうだ。

対処法としてComposerというのがいるらしいので、[ここ](https://getcomposer.org/download/)からダウンロードした。
特にどこもいじらずそのまま進む。
終わったら`composer -v`して動くのを確かめる。

wordpressのフォルダ直下に`composer.json`を作成。以下のように記載。

“`composer.json
{
“require”: {

元記事を表示

Mockeryで警告出まくり!PHPStormで特定のブロックの特定の警告を無視する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103853/01393444-e371-9d6c-c62a-6343e4951e74.png)

ぎゃー!

###環境
– PHPStorm 2020.1.1
– mockery/mockery 1.3.1

###概要
先日PHPStormを最新版にアップグレードしたところ、
Mockeryを使ってmockを作っている箇所が画像のように警告出まくり!まっ黄っ黄になっています!
原因はmockery内のアノテーション。

“`php
/**
* Expected argument setter for the expectation
*
* @param mixed|mixed[] …$args
* @return self
*/
“`
特に規則はないものの、可変引数の形式に配列を含めると、IDE側は引数に配列を期待してしまうようです。

###解決策
プルリ

元記事を表示

Swagger-UI で TypeError: Failed to fetch が出て死ぬ

apiの開発を行うため、swagger-uiを利用していたが、ローカル上のapiに通信を行っても、*TypeError: Failed to fetch* となり結果が表示できなかった。

# 結論
*Access-Control-Allow-Origin* を設定する

自分の場合は phpでslimを利用しているため

“`php

/** @var Psr\Http\Message\ResponseInterface $response */
$response->withHeader(‘Access-Control-Allow-Origin’, ‘*’);
“`

とすることで解決した。(*は後で変えようとは思う。)

元記事を表示

PHPで帳票(PDF)をExcel(テンプレート)から生成するクラスを作ってみた

#はじめに
このところコロナの影響で暇になってしまったので、
昨年(2019)の10月頃にWebの業務アプリを作る事になった時のライブラリを公開したいと思います。

業務アプリなので、帳票がいくつかあって「TCPDF」などでゴリゴリ書いてもよいのですが、保守性を考えてレイアウトをExcelファイルで作成したいなと。
ところが、いろいろライブラリを探しても使えそうなものが、なかなか見つかりません。
そこで「PHPExcel」の後継の「PhpSpreadsheet」が結構使えそうたったので、「TCPDF」と組み合わせて作ってみました。

#概要
このクラスでは、エクセルファイルを読み込んで、セルの修飾情報などを読み込みます。
使う人は、必要に応じてシートオブジェクトに対して各種データのセットを行い、PDF出力メソッドによりWebページにPDFが出力されます。
基本的な使い方はこんな感じ↓

“`php:MainController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use \App\Lib

元記事を表示

Laravel+GraphQL Lighthouse チュートリアル 前半

## チュートリアル

https://lighthouse-php.com/tutorial

これを進めます。
英語のためGoogle翻訳して進めます。
(わかりやすい和訳できる方の編集リクエスト歓迎です?‍♂️)

## 環境

– PHP 7.4.5
– Composer 1.10.5
– Laravel 7.10.3
– Lighthouse 4.12.4
– MySQL 8.0.19

## 使用するパッケージ

https://github.com/nuwave/lighthouse

## 完成版のソースコード

https://github.com/nuwave/lighthouse-tutorial

## What is GraphQL?

GraphQLは、APIのクエリ言語であり、既存のデータでこれらのクエリを実行するためのランタイムです。

GraphQLは、API内のデータの完全で理解可能な説明を提供し、クライアントに必要なものだけを正確に要求する力を与え、APIを長期間にわたって容易に進化させ、強力な開発者ツールを有効にします。

![playgroun

元記事を表示

DockerでLaravel環境を整えてwebアプリを開発するまでの流れ

#はじめに
dockerとlaravelを勉強するために簡単なwebアプリを作成したので,その大まかな流れと操作,エラーの対処法などを解説します.この記事がdockerやlaravelを学習しようとしている方の役に立てば幸いです.

#開発環境
(ホストOS)

– CentOS7
– (fedora32)

(dockerコンテナ)

– PHP7.4
– Laravel7.6
– MariaDB10.4
– Apache2.4

#最終的なディレクトリ構成
“`
.
├──docker-compose.yml
├── mariadb
| ├── mariadb.cnf
| └── Dockerfile
└── php
├── php.ini
├── laravel_project #Laravelプロジェクトのディレクトリ
├── laravel_symbolic_link #/laravel_project/publicのシンボリックリンク
├── apache
│ └── httpd.conf

元記事を表示

CodeIgniter4でMySQLのDB構築

DB接続までは[こちら](https://qiita.com/kohenji01/items/ced458da42ce70e067f8)をご覧ください。

#DBを作る前に一言

[前回の記事](https://qiita.com/kohenji01/items/ced458da42ce70e067f8)でもそうなのですが、本来はDBの操作は`Models`の中で行うべきなのですが(というより、コントローラ内で、モデルとビューの操作以外を行うことがよろしくない)、CIはこのあたりの縛りが非常にゆるくなっています。
今回もMVCモデルがイマイチ判らん!という人にも直感的に理解できるように、あえてコントローラの中でプログラムを完結させていきたいと思います。
このあと、このメソッドをちゃんとModelに持っていく記事も書く予定です。

#とにかくDBを作る

CI4のDB自体やテーブルの作成などは`Database Forge`クラスが利用可能です。
ただ、`.env`ファイルに使用したいDB名が記述されている場合はForgeを初期化する時にそのDBに接続しにいってしまい、DBがまだできてい

元記事を表示

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を用いて導入 |

# 前提情報

元記事を表示

小説家になろうAPIを叩いてランキングを取得

#目次
1. 概要
2. APIを確認
3. コード①(取得・保存)
4. コード①について
5. コード②(出力)
6. 実行結果
7. 終わり

#1. 概要
– 小説家になろう(以下なろう)のAPIからランキング情報を取得する
– その後ローカルに保存して、ファイルから読み込む
– PHPで「Hello,World!」を表示できる方向け
– [なろうランダム](https://narou.club)というサイトを作る際に最初に取り組みました
– 環境
– macOS Catalina ver.10.15.4
– PHP 7.3.11 (cli)

#2. APIを確認
「[なろうデベロッパー](https://dev.syosetu.com/man/api/)」で詳細に解説されているので、必読です。

例えば以下の条件で取得したい場合
・週間ランキング上位 ▶︎ order=dailypoint
・5件 ▶︎ lim=5
・「タイトル/著者名/週間ポイント」のみ ▶︎ of=t-w-wp

アクセスするURLは「[https://api.syosetu

元記事を表示

トレイト (アウトプット)

今日初めてトレイトを使ったからまとめとく。

#トレイトとは
PHPのバージョン5.4.0から導入されたコードの再利用性を高めるための機能。
トレイトは任意のクラスの機能(メソッド)を拡張できる仕組み。

####トレイトの定義方法
“`trait.php

元記事を表示

PHP  オブジェクト指向 (アウトプット)

#オブジェクト指向とは?
関連した関数や変数をまとめて名前をつけることで管理しやすくするという方法

##クラスとインスタンス
クラス → オブジェクトの設計図
インスタンス → オブジェクトの実体

#####オブジェクトを作るのにまず設計図が必要(クラスの宣言)

“`php:human.php

“`
#####設計図をもとにオブジェクトを実体化(インスタンスの生成)

“`php:human.php

元記事を表示

laravel環境構築でハマった日

##説明
Laravelを導入時ハマってしまったのでその記録。

##Conposerのインストール
Homebrew(macのソフトウェアの導入を簡単にするもの)は入っていたので割愛しますが、まずはConposer(phpのパッケージ管理システム)をインストール。

“`
$ curl -sS https://getcomposer.org/installer | php
“`

次にComposerを移動。グローバルにするため。移動かと思ったら名前も変わるらしい(後から知った)

“`
$ mv composer.phar /usr/local/bin/composer
“`

とりあえずバージョン確認

“`
$ composer -v
“`

↓こんなの出てきてこの下にバージョンとか書いてある

“`
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / /

元記事を表示

Bootstrap 3 Datepicker v4 のカレンダーを使って超簡易的な予約システム作ってみた

#はじめに
[Bootstrap3 Datepicker v4](https://eonasdan.github.io/bootstrap-datetimepicker/)は、カレンダーを表示して、日付/時間を選択、取得できるライブラリです。
ここでは、Bootstrap3 Datepicker v4のカレンダーを使って超簡易的な予約システム(予約情報入力⇒送信⇒予約情報の表示)を作って解説します。
カレンダー表示に絞った解説は[ここに](https://qiita.com/fktlnz/items/4b8c2f8d0d16c3371018)書いてます。

#構成
フォルダの構成は下記を想定しています。
コードは[ここに](https://github.com/fktlnz/reserve)置いています。

project
├ index.html(予約フォーム表示、POST送信)
├ reserve.php(予約内容表示用)
├ src
│  ├ css
│  │  ├ bootstrap.min.css
│  │  └ bootstrap-datetimepicker.min.cs

元記事を表示

OTHERカテゴリの最新記事