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

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

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

元記事を表示

Bootstrap 3 Datepicker v4 のカレンダーを表示する手順

#はじめに
[Bootstrap3 Datepicker v4](https://eonasdan.github.io/bootstrap-datetimepicker/)は、カレンダーを表示して、日付/時間を選択、取得できるライブラリです。
ここでは、Bootstrap3 Datepicker v4でカレンダーを表示する手順を説明します。このカレンダーを使って予約システム(予約情報入力⇒送信⇒予約情報の表示)を作り解説したのでこちらも参考にしてください。

#構成
フォルダの構成は下記を想定しています。

project
├ index.html
├ src
│  ├ css
│  │  ├ bootstrap.min.css
│  │  └ bootstrap-datetimepicker.min.css
│  └ js
│  │  ├ jquery-3.5.1.min.js
│  │  ├ moment-width-locales.min.js
│  │  ├ bootstrap.min.js
│  │  └ bootstrap-datetimepicker.min.js
│ 

元記事を表示

【Laravel】インストールから導入まで(XAMPP環境下)

##`やりたいこと`##
– WEBサーバーはxamppを使う
– laravelで開発する

##`前提`##
– xampp導入済み

##`進めかた`##
– composerのインストール
– laravelのインストール&プロジェクト作成

composerをインストールする

laravelはcomposerというPHPの管理プログラムを利用してインストールする
なのでまずはcomposerをインストールする
[composer](https://getcomposer.org/)
スクリーンショット (21)_LI.jpg

コマンドプロンプトで下記を入力しインストールできたか確認する

“`php
$ composer -v
“`
スクリーンショット</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>PHP</div>
<div class='tag-cloud-link'>xampp</div>
<div class='tag-cloud-link'>Composer</div>
<div class='tag-cloud-link'>Laravel</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/mikimiki0055/items/f8fd9ad275385070a8ad'>元記事を表示</a></div>
<h3 id=Laravel new コマンド PHP Fatal error: Uncaught Error: Call to undefined method

Laravelインストーラを使ってインストールした時にエラーが起きた場合の対処法です。

## 問題

“`shell-session
$ laravel new project-name
Crafting application…
PHP Fatal error: Uncaught Error: Call to undefined method Symfony\Component\Process\Process::fromShellCommandline() in /Users/ucan/.composer/vendor/laravel/installer/src/NewCommand.php:84
Stack trace:
#0 /Users/ucan/.composer/vendor/symfony/console/Command/Command.php(251): Laravel\Installer\Console\NewCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(

元記事を表示

phpで生成したcsv 0からの数字が表示できない

$number = 012345
‘=”‘ . $number . ‘”‘

元記事を表示

メモ: phpビルトインサーバー、COMを使う

## 最小構成

### フォルダ構成

* https://windows.php.net/download から
* VC15 x86 Non Thread Safe (2020-Apr-14 22:48:40)
* Zip [23.09MB]

“`sh:以下ファイルだけが必要
license.txt
php.exe
php7ts.dll
“`

“`sh
# フォルダ構成
server.bat

php\php.exe
php\php7ts.dll

docroot\index.php
“`

### docroot\\.user.ini

“`ini
[PHP]
; error
error_reporting = E_ALL & ~E_NOTICE
display_errors = On

; extensions
extension_dir = php\ext
;extension = com_dotnet
;extension = mbstring
;extension = pdo_sqlite

; mbstring
mbstring.lang

元記事を表示

Laravel MySQL timestamp型 2038年問題に対応する

## 概要

MySQLのtimestamp型は2038年問題が発生します。
[MySQLのtimestamp型に起きる2038年問題](https://qiita.com/juve_534/items/a9f9f72d49f8817951e8)

timestamp型の寿命が先に来るか、アプリの寿命が先に来るか定かではないですが後から直すことを考えると予め対策しておいた方がベターなのかなと思います。

## 環境

– PHP 7.4.5
– Laravel 7.9.2
– MySQL 8.0.19

## デフォルトの users テーブル

“`php:database/migrations/2014_10_12_000000_create_users_table.php
Schema::create(‘users’, function (Blueprint $table) {
$table->id();
$table->string(‘name’);
$table->string(‘ema

元記事を表示

PHP7.4でもマルチスレッド!!

以前「[PHP7.4からのマルチスレッド](https://qiita.com/WhiteGrouse/items/6fb906386b8fbabd6405)」という記事を書きましたが、内容が薄すぎたのでもう少し紹介していきたいと思います。コードは全く載せていないのでサンプルはParallelのテストコードを見てください。

なお、PHPにおけるマルチスレッドはCLI限定となります。マルチプロセスを実現するpcntlではwebサーバで使用することを非推奨としていますが、pthreadsやparallelではコンパイルから拒否されます。

# 拡張モジュール
krakjoe氏が開発しているParallelを使用します。
https://github.com/krakjoe/parallel

# マルチスレッドモデル
ParallelはGo言語のgoroutineに大きく影響を受けています。
https://www.php.net/manual/ja/philosophy.parallel.php

# parallel\Runtime
RuntimeはpthreadsのWorkerにか

元記事を表示

Laravelでファイルダウンロード機能を実装する

# 前提条件
[eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)](https://qiita.com/toontoon/items/76fa7f8845b20776077c)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

# Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpに下記を追記
`use Illuminate\Http\Response;`

(2) /sample/app/Http/Controllers/SampleController.phpにdownload1メソッド、download2メソッド、sendHeaderメソッド、sendContentBodyメソッド、sendContentEndメソッドを追記

“`

public function download1()
{
retur

元記事を表示

Could not open input file: artisanの解決方法

#はじめに
マイグレーションしようと思って以下のコマンドを打ったら
エラーは出たので解決方法を載せておきます

““
[vagrant@localhost]$php artisan migrate
Could not open input file: artisan
““

#解決方法
arisanファイルのあるディレクトリにいないことが原因です
artisanファイルがどこのディレクトリにあるか確認しましょう
単純ですが以外にハマりますwww

元記事を表示

Laravel ディレクティブでswitch文を記載する

# 目的

– 若干詰まったためディレクティブでのswitch文の記載方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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 剰余算を使い、行ごとの背景色を変更する

“`php:sample.php

‘);
}else{
print(‘

‘);
}
print(‘

‘);
print(‘

‘);
}
?>

‘.$i.’行目

“`

“`php:出力
1行目
2行目
3行目
4行目
5行目
6行目
7行目
8行目
9行目
10行目

-奇数行目の背景の色が変更になる
“`

“`php:メモ
if($i%2)は,余りが出るところがtrueとなり,変更される

“`

元記事を表示

PHPのクラス・メソッド

1.クラスとは?

そんなもんわかっとるわ!と思うかもしれませんが、
いざ説明しようとするといい回答が出てきません。
オブジェクトの塊です(雑)。
実際、一言では説明ができないので、実際に書いていきましょう。

2.public

下記では、基本的なクラスの定義を書いています。

“`classTest.php

“`

“`test_sample.php

元記事を表示

OTHERカテゴリの最新記事