- 1. Hi
- 1.2.1. 【PHP】基礎メモ
- 1.2.2. laravel6.0でphp artisan migrateコマンドを打つとSQLSTATE[HY000] [1045]エラーで苦しんだ人の記録
- 1.2.3. laravel5.5で画像アップロード方法
- 1.2.4. WordPressの管理画面に再利用ブロックへのリンクを追加する
- 1.2.5. WindowsにPHPのバージョン管理ツールを導入する。
- 1.2.6. LaravelでDBに入っている値がURL文字列かどうか調べる
- 1.2.7. え? print true ? ‘①’ : true ? ‘②’ : ‘③’; って正解は①じゃないの?
- 1.2.8. PHP if, isset, emptyの真偽の判定について if()
- 1.2.9. 特定の数字やアルファベットを有する配列の生成 range()関数
- 1.2.10. 多次元配列について
- 1.2.11. if文の省略記法
- 1.2.12. 複数行にまたがる文字列を利用する方法(ヒアドキュメント)
- 1.2.13. dump()やdd()をグローバルに使えるようにする
- 1.2.14. Laravel 5.5 でのパスワードリセット方法
- 1.2.15. ?【PHP】逆順forループで文字列を読んでいく
- 1.2.16. 【WAMP】WindowsとApacheとMysqlとPhpと
- 1.2.17. Laravel ユーザIDを取得しようとしたらエラーが出た話
- 1.2.18. 本日の学習内容part5
PHP基本集
#PHPとは
**PHP**は、Web開発に特化したプログラミング言語で、「Personal Home Page Tools」の略称。**・Webサービスの開発やWebアプリの開発
(集客サイト・SNS・ECサイト・社内の情報共有システムなど)
・WordPressのカスタマイズ・テーマの作成
・データベースに接続してデータの登録・削除・取得**
等の他、様々な開発が出来る。###記述方法
####【タグ】
タグの中にPHPの命令を記述していく。例)
“`php
PHP‘; ?>
“`
上記のコードがデベロッパーツール上においては、下記の様にHTMLに変換されて表示されていることが確認出来る。“`html
PHP
“`
また**文末にはセミコロン;を付ける**こと“`php
// ←コメントアウトする場合はスラッシュ2つを左翼に記述する
“`
####【echo】文字列を出力するための命令文である。
出力する文字列などはシングルクォーテーシ
本日の学習内容part6
##はじめに
こんにちは。閲覧頂きありがとうございます。okayamanです。
今回から[PHPフレームワークLarabel入門第2版](https://www.shuwasystem.co.jp/book/9784798060996.html)の学習した内容をアウトプットしていきますのでよろしくお願いします。(もし、間違っている箇所があれば教えて下さい。ものすごく助かります。)ちなみにこの学習内容はLaravel 6、PHP 7で行っております。
####~P38まで終了##ルーティングの基本->Route::get()
ルーティングとはあるアドレスにアクセスしたとき、どの処理を呼び出し実行するかを管理するもの。
Route::の後に来る単語や()内の記述によって処理が変わる。ここではRoute::getを取り上げる。“`
Route::get(‘hi’, function() {
return ‘Hi
test page
‘;
});
“`
上記のコードは第1引数がアドレス、第
【PHP】基礎メモ
# 最初に
自身で学習してきた内容を書き出していきます。
基本的には自分自身でわかるような内容になりますので、ご容赦ください。
また、誤っている点がありましたら、コメントにてご指摘ください。(要確認)マークがあるものは、「実行前に必ずググる」べき内容。
# index
– PHPってなんぞ?
– echoとprintのちがいと使いどころさん!?
– 四則演算処理
– 文字列と数値
– 変数と定数
– 変数
– 定数
–# PHPってなんぞ?
**PHPはHTMLに埋め込むことができ、Web開発でよく使用されるスクリプト言語**
※JavaScriptもスクリプト言語であり、PHPとJavaScriptの大きな違いは、そのコードがどこで実行されるかだぞ。**JavaScript**
クライアントサイド(Webサイトを閲覧しているブラウザ)がコードを受け取り、そこで動作する。
そのため、どのようなコードが書かれているのか、誰でもみれる?。**PHP**
サーバーサイドでコードを実行。
クライアントサイドはその結果のみを受け取るため、どのようなコードで導き
laravel6.0でphp artisan migrateコマンドを打つとSQLSTATE[HY000] [1045]エラーで苦しんだ人の記録
#執筆背景
どうも、直人と申します。現在、自分はlaravelの学習を兼ねて簡単なアプリを作成しようと試みています。
その第一段階として、
**昨日VirtualBoxとVagrantを使用してlaravelの開発環境を構築し終えた。**なので、
**今日はMVCモデルの学習とMySQL上のデータベースにテーブルを作成し、そこから値を拾ってきて表示するところまでを終わらせよう**
と考えていた。MVCモデルについて一通り学習を終え早速テーブルを作成しようと以下のコマンドを打つ。
“`
$ php artisan make:migration create_books_table
“`create_books_taqble.phpが作成されるので、ファイル内の以下の部分をデフォルトから変更した。
“`ruby:create_books_taqble.php
Schema::create(‘books’, function (Blueprint $table) {
$table->increments(‘id’);
laravel5.5で画像アップロード方法
表題の通りです。
画像ファイルをアップロードして、アプリ内で表示させたいと思います。
初心者なりに頑張ってみました。##やりたいこと
プロフィール用の画像をアップロードして、表示させたい。##画像ファイル用DB
今回は既存のusersテーブルにカラムを追加して、ファイルのパスを保存します。“`
php artisan make:migration add_image_column_users_table –table=image
“`##ルーティング
マイページ内で画像投稿用のフォームに移動したいので、そちらにまとめます。“`web.php
Route::group([‘middleware’ => [‘auth’]],function() {
//画像投稿フォーム表示
Route::get(‘userimage’, ‘UserEditController@index’)->name(‘image.index’);
//画像保存
Route::post(‘userimage’, ‘UserEditController@uplo
WordPressの管理画面に再利用ブロックへのリンクを追加する
執筆時のバージョン WordPress 5.4 “Adderley”
#再利用ブロックの一覧ページがあるのはご存知?
再利用ブロック便利ですよね。
ひとつ書き換えるだけで全部変更できますし。
知らなかった方は自分のWordPressサイトにログインした状態でこのURLを編集してアクセスしてみてください。
`https://あなたのどめいん/wp-admin/edit.php?post_type=wp_block`
間違って消してしまった再利用ブロックもこのページのゴミ箱から復活させることもできます。安心設計。
でも……
#再利用ブロックの一覧ページに行くのが面倒くさいWordPressで再利用ブロックを編集したいときと思った時
**投稿の編集を開いて⊕(ブロックの追加)から再利用可能→すべての再利用ブロックを管理**
って作業を毎回してませんか?~~僕はしていました~~
そんな方は
・テーマ・子テーマの`functions.php`に
・プラグインでカスタマイズしている方はプラグインに
以下のコードを追加すると幸せになれるかもしれません(\*´ω`*)`
WindowsにPHPのバージョン管理ツールを導入する。
2020年 4月 執筆
#背景
いままでWindows10に直にPHP最新版をインストールしていましたが、
ダウングレードを行う必要があったので、バージョン管理ツールを導入することにしました。
せっかくなので、手順を簡潔にまとめました。当記事は、Scoopというバージョン管理ツールを導入し、PHPのバージョン切り替えができるようになるまでの手順のメモになります。
※当記事ではコマンドラインツールを使用します。特にこだわりのない方は、Windows標準搭載の PowerShell というツールを使うといいと思います。
※Node.jsをはじめ、PHP以外の言語でも対応できるものがあるようですが、当記事ではPHPのバージョン管理のみを目的としています。他言語の場合、意図したバージョンに対応していない場合もあるそうです。
#手順1. PHPをアンインストール
すでにPHPをインストール済みの場合、Scoop経由で導入したPHPと競合する恐れがあるので、削除したほうが無難です。**PHPのインストーラがある場合**
1. インストールをダブルクリックして「uninstall」を押
LaravelでDBに入っている値がURL文字列かどうか調べる
URLかどうかなんてDBに入れる前にフォームバリデーションで調べれば良いような気はしますが、それだとお客さんの要件にかなわないこともあるのです。つらい。
鬼の正規表現で調べても良いのですけど、そもそもLaravelにはURL文字列かどうか調べる機能はあるし、自力で鬼の正規表現を書くよりイケてる判定ができそうな気がするので、そいつを利用させてもらいたいものです。
基本的にバリデーションはRequestクラスをベースにしたRequestに面倒見させて、Controller側ではそいつをDIするってのが筋の良い書き方だとは思うのですが、そうじゃない使い方もできます。
# Validatorインスタンスをmakeしようぜ
ちょっと長いのですが、実はこんな感じにするとValidatorは作れるのです。
“`php
// なんかDBのデータ取ってくる。こいつはurlというvarcharのカラムを持っていることとする。
$hoge_model = HogeModel::find($id);// Validator::makeの第一引数は配列しか受けられないのでtoArrayしておく
え? print true ? ‘①’ : true ? ‘②’ : ‘③’; って正解は①じゃないの?
# 答え
“`php
php > print true ? ‘①’ : true ? ‘②’ : ‘③’;
②
“`もちろんみなさんは正解は②だとすぐわかったと思いますが、
私は、①になると思っていて、バグフィックスで30分くらいハマりました?社内でもアンケートをとったら予想外だと思った人が3人/4人いたので、意外と混乱しやすい書き方だと思います。
# 解説
処理の順番がわかるようにカッコをつけるとこうなります。
“`php
print (true ? ‘①’ : true) ? ‘②’ : ‘③’;
“`1. `(true ? ‘①’ : true) `が評価されて`
PHP if, isset, emptyの真偽の判定について if()
条件分岐の基本的なところでつまづいたので、if,isset,emptyの挙動について簡単にまとめてみます。
######配列$arrayをif, isset, empty それぞれで出力してみました。
“`php
$array = [0, ‘0’, 10, false, true, null, ”, [] ];foreach($array as $val){
if($val){echo “truthy”;}
if(!$val){echo “falsy”;}
echo “\n”;
}foreach($array as $val){
if(isset($val)){echo “truthy”;}
if(!isset($val)){echo “falsy”;}
echo “\n”;
}foreach($array as $val){
if(empty($val)){echo “truthy”;}
if(!empty($val)){echo “falsy”;}
echo “\n”;
}“`
######結果
“`php
特定の数字やアルファベットを有する配列の生成 range()関数
指定した範囲の要素を持つ配列の生成にはrange()関数を使用します。
“`php:dice.php
$dice = range(1, 6);var_dump($dice);
“`↓実行結果
“`php:dice.php
array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
“`このように引数に指定した範囲の値を持つ配列の生成が出来ます。
数字以外にも、“`php:abc.php
$alphabet = range(‘a’, ‘z’);var_dump($alphabet);
“`↓実行結果
“`php:abc.php
array(26) { [0]=> string(1) “a” [1]=> string(1) “b” [2]=> string(1) “c” [3]=> string(1) “d” [4]=> string(1) “e” [5]=> string(1) “f” [6]=> string(1) “g”
多次元配列について
配列の中のキーを配列として格納することが可能。
“`php:meet.php
$meet = array(
‘鶏肉’=> array(
‘price’ => 68,
‘stock’ => 10),‘豚肉’ => array(
‘price’ => 89,
‘stock’ => 15),‘牛肉’ => array(
‘price’ => 128,
‘stock’ => 8)
);
foreach($meet as $name => $value) {
echo $name . ‘は、100グラム’ . $value[‘price’] . ‘円、在庫は’ . $value[‘stock’] . ‘個です。’ . ‘
‘;
}“`
↓実行結果“` php:meet.php
鶏肉は、100グラム68円、在庫は10個です。
豚肉は、100グラム89円、在庫は15個です。
牛肉は、100グラム
if文の省略記法
“`php:from.php
$area = ‘京都’;//A
$from = isset($area) ? ‘出身は’ . $area . ‘です’ : ‘出身地が設定されてません’;//B
if (isset($area)) {
$from = ‘出身は’ . $area . ‘です’;
} else {
$from = ‘,出身地が設定されてません’;
}
“`Aの書き方とBの書き方ではどちらも同じ結果が$fromに代入されることになります。
初学者の自分はBの表記法でしかしたことなかったですが、Aの表記法の方が断然すっきりしますね。
複数行にまたがる文字列を利用する方法(ヒアドキュメント)
シングルクオートとダブルクオート以外で、複数行にまたがる文字列を利用する方法でヒアドキュメントがあります。
ヒアドキュメント構文(<<<)の後に終端識別子を定義し、それが出現するまでを文字列として認識します。 ```php:heredocument.php $age = 29; $a = <<
dump()やdd()をグローバルに使えるようにする
[Twitterで見かけたこの記事](https://www.sigerr.org/article/make-php-lib-functions-like-dump-or-dd-globally-available)を読んで知ったのですが、その紹介です。
LaravelやSymfonyを使っている方は`dump`や`dd`を使う機会が結構あると思います。便利ですよね。`var_dump`?`print_r`?なにそれおいしry
しかしLaravelやSymfonyの外でやろうとするとちょっと面倒です。これだけのためにわざわざ`symfony/var-dumper`をrequireすることもしばしば。しかしもう必要ありません。めっちゃシンプルに**常に**(psyshコンソールの中でも!)この機能をプリロードする方法を見つけました。 (元記事の方が)
PHPにビルトインされている[auto_prepend_fileオプション](https://www.php.net/manual/ja/ini.core.php#ini.auto-prepend-file)を使います。
なお、元記
Laravel 5.5 でのパスワードリセット方法
Laravel 5.5パスワードリセットの機能を実装するのに結構苦労したので、
メモとして残させてもらいます。
間違ってるところもあると思いますので、何かあればご指摘いただければ嬉しいです。#やりたい事
laravelでパスワードリセット機能を実装する。
パスワード忘れてログインできない!って時に使うやつ。#migrate
“`
php artisan migrate
“`
#認証機能
“`
php artisan make:auth
“`
以上で大半の準備が完了です。
必要なコントローラーは“`app/http/controllers/auth/“`
ビューは“`resources/views/auth/passwords/“`
ルーティングにも“`web.php
Auth::routes()
Route::get(‘/home’, ‘HomeController@index’)->name(‘home’);
“`
みたいなのが追加されます。#mailableクラス作成
“`
php artisan make:mail ResetPasswor
?【PHP】逆順forループで文字列を読んでいく
## 環境
PHP 7.2.21## やりたいこと
単純な文字列を後ろから一文字ずつ読んで色々判定したいので
後ろから一文字ずつのforループを実装してみる## やったこと
forの開始位置をstrlen()で文字数取得し$i–で逆に回す
※マルチバイト文字に対応していないのでそこは別途なんとかしたい“`forLoop.php
// 対象の文字列
$tmpString = ‘eltociear_hoge’;for ($i = strlen($tmpString) -1; $i > -1; $i–) {
// 一文字を表示
var_dump($tmpString[$i]);
}
“`### 出力結果
“`
string(1) “e”
string(1) “g”
string(1) “o”
string(1) “h”
string(1) “_”
string(1) “r”
string(1) “a”
string(1) “e”
string(1) “
【WAMP】WindowsとApacheとMysqlとPhpと
# 概要
仕事のために試したことをまとめたものです。
Apacheがwin64、PHPがwin32だとうまくいかなかったのでMySQLも統一の必要があるかもしれません。# バージョン
– Apache:httpd-2.4.41-win32-VS16.zip
– MySQL:mysql-8.0.19-winx64.zip
– PHP:php-5.4.45-Win32-VC9-x86.zip# インストール
各アプリケーションのインストールから実行までの手順を記載## Apache
1. ファイルをダウンロードし展開(C:\Apache24)
2. httpd.confに以下を追記
3. http\://localhost/でアクセス可能に:`ServerName localhost:80`
4. PHPのディレクトリを指定:`PHPIniDir “c:/php”`
6. .phpファイルをPHPとして実行可能に:`AddType application/x-httpd-php .php`
5. apache2.4用PHP5モジュールをロード:`
Laravel ユーザIDを取得しようとしたらエラーが出た話
# 目的
– 初歩的であるがこれからもうっかり発生させそうなエラーなので解決方法を含めてまとめる
# 実施環境
– ハードウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| OS | macOS Catalina(10.15.3) ||
| ハードウェア | MacBook Air (11-inch ,2012) ||
| プロセッサ | 1.7 GHz デュアルコアIntel Core i5 ||
| メモリ | 8 GB 1600 MHz DDR3 ||
| グラフィックス | Intel HD Graphics 4000 1536 MB ||– ソフトウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |
本日の学習内容part5
##書籍での学習を始めます
PHPを[Progate](https://prog-8.com/)や[ドットインストール](https://dotinstall.com/)、[Udemy](https://www.udemy.com/)である程度学習しましたので、一度フレームワークというものを触ってみようという事で、先週末に[PHPフレームワークLarabel入門第2版](https://www.shuwasystem.co.jp/book/9784798060996.html)を買ってきました。##今日した事
・composerのインストール
やり方は端折ります。が、ネット上にも情報が転がってましたので、リンク貼っておきます。[【PHP】Composerは絶対必要!インストール方法と解説で完全攻略](https://www.sejuku.net/blog/82454)・Laravelのインストール
こちらもやり方を端折ります。(著作権侵害こわひ。) こちらもネット上のやり方リンク貼っておきます。[導入手順を解説!Laravelのインストール方法【初心者向け】](https: