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

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

【Laravel】「ヘルパ」PHP関数を使っていこう

今回はヘルパ関数について改めて触れる機会があったので
忘備録としてまとめておく。
公式を参考にしているのでより正確な解釈を知りたい方は
最後にリンクを載せてますのでそちらを御覧ください!

##「ヘルパ」PHP関数とは
Laravelで定義されている便利なグローバル関数。
例えばよく使うものでいくと
`auth`や`old`、`env`あたりがすぐに触れるでしょうか。
ちなみに僕は上記の関数は使ってましたがグローバル関数としての認識をもって使ってませんでした。
極端に詳しく調べなくてもいいかと思いますが仕組みを理解して使うと
簡潔な実装につながるかと思うので機会があれば処理を追ってみるといいでしょう。

##様々な関数
割とたくさんの関数があるのでよく使うものを纏めておきます。

“`PHP
// 指定された変数の内容を表示し、スクリプトの実行を停止します。
dd($value);

// 環境変数の値を取得します。取得できない場合はデフォルト値を返します。
env(‘APP_ENV’, ‘production’);

// セッションに一時保持データーとして保存されている直前の入力

元記事を表示

RubyとPHPは何が違うのか、と聞かれたら

私は未経験からエンジニアを目指している人間だが、もし同じ境遇であればちょっと読んでみて欲しい、、、。

まず、なぜこんな記事を書くのかというところからだが、とある企業の面接を受けた時にこう聞かれて、上手く答えられなかったからだ。

`「今まではRubyを勉強してきて、現在はPHPを勉強しているということですが、RubyとPHPの言語の違いは何かありますか?」`

質問された瞬間、「あ、これ答えられない。」と思ってしまって、本当にこんな質問だったか、答えた内容が的を得ていたかもはっきり思い出せない。。。
学んでいる上では、Rubyの方が可読性が高い、、気がします。みたいなことを言っていた気がする。

そもそも、自分がRubyからPHPを学び始めたのは、PHPのシェアが多いから、使えて損はないだろうという浅い考えだった。

エンジニアを目指すと言いながら、言語の違いすらも説明できなかった。そんな反省の思いからこの記事を書いている。ショックのあまりポエムっぽくなっているかもしれないが、許して欲しい。。。

# とりあえず答えから

あくまで、「私の考え方で、聞かれた質問の記憶から推測するに」

元記事を表示

Laravel学習、始めました。(Laravel、MySQL環境構築)

###こんにちは!

ここ数日でphp、Laravelの学習をし始めました。
とりあえず環境構築関係から投稿していきます。

先週に2日間くらいphpの基礎構文と、Laravel,Lumenドキュメントや色々なソースコードを拝見しました。
正直あまりわかっていませんが、細かくアウトプットするのも重要だと思い記事にしました。

##目次
・[Laravel環境構築](#laravel環境構築)
・[MySQL環境構築](#mysql環境構築)
・[感想](#感想)

#Laravel環境構築
####`Homebrew install`
まずphpをインストールするのにHomebrewが必要なので、入っていない方は下記コマンドでinstall。

“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`
バージョン確認。

“`
% brew -v
Homebrew 3.0.9
“`

オッケーですね。

####`php inst

元記事を表示

Google Blocklyを使って、ブロックの組立てた後、プログラミング言語(JavaScript,PHP, Python.. etc)を自動生成してみた

#### Google Blocklyとは?
– 2013年にgoogleにて、公開されたビジュアルプログラミングツールです。
– 様々なコンテンツがありますが、その一部を紹介します。ブロック組み立て後は、プログラミング言語(javascript, PHP, Python.. etc)を自動出力できるページです。
– 今回の利用したページ: [Blockly > Demo > Code Editor](https://blockly-demo.appspot.com/static/demos/code/index.html)

#### 今回のお題
4桁の入力チェック

#### 今回の処理のイメージ
![20210319182052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/778930/a7d5a7bb-e71b-90bf-06c2-1e8d6f2a350f.png)

#### 今回のブロック
1. 入力ウィンドウ
2. 三項演算子
3. 文字列の出力

#### 今回組み立てたブロック

元記事を表示

Laravelで作成したアプリをHerokuでデプロイしてみよう!# MySQL

## Herokuとは?
HerokuはPaaS(Platform as a Service)と呼ばれるクラウドサービスです。ハードウェア(サーバー)、OS、ミドルウェアからなるアプリケーションの実行環境を提供します。Herokuを使うことで開発者はアプリケーションの開発に専念することができます

[画像引用元](https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/)
## 前提
– HerokuにデプロイするLaravelのアプリケーションは準備しておいてください
– DBはMySQLを使用
– Dockerは使いません
– HerokuCLIをインストールしておく
– `$ heroku -v`でve

元記事を表示

高校生がwebアプリケーションを作ってみた!

#はじめに
記事を見ていただきありがとうございます。
恐縮ですが実務・業界共に未経験のため設計や図に間違いがある場合、***優しく***教えていただけると幸いです。
執筆時は高校を卒業していますが、ほぼ高校生ということでお願いします。
高校生なりに頑張って作ったので見ていってください。
コストの関係上、**2021/4/20**まで公開します。
記事中にも記載はありますが、各リポジトリのURLをまとめておきます。
・[アプリケーション repo](https://github.com/naruse666/portfolio_app)
・[docker repo](https://github.com/naruse666/laravel_docker)
・[k8s repo](https://github.com/naruse666/k8s_laravel)
・[ポートフォリオ作品](http://ada323091392e46e7a37439821217fde-1183638593.ap-northeast-1.elb.amazonaws.com)(2021/4/20まで)

#勉強期

元記事を表示

phpで西暦の配列を作る簡単なやり方

備忘録

“`index.php
array_combine(range(2000,date(“Y”)), range(2000,date(“Y”)))
“`

引用元
https://heppoko-room.net/archives/998

元記事を表示

【phpunit】テストを実行するたびにローカルDBがリセットされる

#はじめに
phpunitを使ってテストを書いた際に、`テストを実行するたびにローカルDBがリセットされる`というバグにハマったので、解決方法を記録しておきます。

#開発環境

PHP 7.4.16
Laravel 6.20.17
mysql 8.0.23
nginx 1.18.0

#DB設定方法
ControllerTest.php に下記を追加

“`
use Illuminate\Foundation\Testing\DatabaseTransactions;

class ControllerTest extends TestCase
{
use DatabaseTransactions;
}
“`

phpunit.xmlを下記にする

“`
composer updateとcomposer installの違い

Laravelでの開発を進める上で、よく忘れるので備忘録です。
間違い等ありましたらご指摘ください:tea:

## update
“`bash
$ composer update
“`

* composer.jsonにより、各ライブラリを最新版に更新
* composer.lock生成
* composer.lockにはインストールした各ライブラリのバージョン情報が記載される。

## install
“`bash
$ composer install
“`

* composer.lockから記載のバージョンをインストール
* composer.lockが存在しない場合は、composer updateと同じ効果。

## 使い分け
* composer updateはライブラリを最新版に更新
* composer installはcomposer.lockに記載された特定のバージョンをインストールする

## 個人的なベストプラクティス
### 開発

“`bash
$ composer update
“`

元記事を表示

heroku run php artisan migrate した時のエラー

# heroku run php artisan migrateした際のエラー

““
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables
““
上記のエラーが発生しました。

下記コマンドで、環境変数を確認します。

““
$ heroku run php artisan tinker

>>> config(‘database.connections.mysql’)
““
““
=> [
“driver” => “mysql”,
“url” => null,
“Host” => “ホスト名”,
“Port” => “ポート番号”,
“database” => “データベース名”,
“username” => “ユーザ名”,
“password” => “パスワード”,
“unix_socket” => “/Applications/MAMP/tmp

元記事を表示

コピペで使える: PHPでYahooから為替レートを取得する方法

多通貨を扱うサイトで必要な、為替レートをヤフーから取得する方法を紹介します。コピペで簡単に使えるので興味のある方はお試しください。

この方法は、現在私が1人で開発しているカメラの海外価格比較サイト [nukeni.com](https://www.nukeni.com) でも使用しています。

#具体的な方法
ヤフーファイナンスの以下のようなページをスクレイピングして為替レートを取得します。
https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=JPY&t=USD

#テスト環境
CentOS 7
PHP 7.3.9

#事前準備
ヤフーのスクレイピングにはphpQueryという外部ライブラリを使用します。正規表現で取得してもいいのですが、こちらを利用した方がより簡単にスクレイピングできます。

[こちらのページ](https://code.google.com/archive/p/phpquery/downloads)から最新バージョン([phpQuery-0.9.5.386-onefile.zip](https://storage.

元記事を表示

php artisan migrateがうまくいかず、MySQL 8.0を再インストール

#環境
* M1 Mac macOS Big Sur 11.2.2
* MySQL 8.0.23 (Homebrew)
* PHP 7.3.24

#失敗した手順
最初にHomebrewでインストールした後は、

“`
brew install mysql
“`
####1. 権限を回避してMySQLの接続を行う
<エラー> ERROR 1045 (28000): Access denied for user ‘root’@’localhost’
[Qiita – MySQLインストール後、アクセス拒否 (Access denied for user ‘root’@’localhost’)](https://qiita.com/yummy888/items/25621bc1451f218e010a)
####2. 認証方式変更
<エラー> The server requested authentication method unknown to the client [caching_sha2_password]
[Qiita – FuelPHPでのMySQL接続時にThe se

元記事を表示

SymfonyのOptionResolverの紹介

## はじめに
ビルダーパターンなどを使っていると、配列で様々なオプションを渡したくなる時があります。その時に、値の存在確認や、型のチェックなどをスマートにこなせるSymfonyのOptionResolver Componentの紹介です。

## 問題提起

`Car`クラス、`Engine`クラス、`Tire`クラスの三つがあります。`Car`クラスは`Engine`と`Tire`のセッターを持ち、`Engine`と`Tire`はそれぞれ`int`型のパワーとサイズをセッターで受け取ります。

実装は以下の通りです。

“`php
engine = $engine;
}

public function setTire(Tire $tire): void
{

元記事を表示

Route::postにするとなぜか「The GET method is not supported for this route. Supported methods: POST.」が出る。

#目次
[1.何が起きた?](#何が起きた?)
[2.解決策はこれ!](#解決策はこれ!)

#何が起きた?
Laravel8にて、アップロード画面のルート設定で以下の記述を書いたところ、タイトルのように「**The GET method is not supported for this route. Supported methods: POST.**」のエラーが。。。

“`web.php
Route::post(‘ctrl.upload’, [CtrlController::class, ‘uploaded’]);
“`

原因を探るが、どれを試してみても効果なし。

しかもLaravelのエラー画面が教えてくれる場所は「vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php:117」で、そこちゃうねん(多分)。

頭をひねること数時間、最後は
「うわ、こんなしょうもないことで。。。」
と原因に気づきました。

そうは思ってもプロ

元記事を表示

Laravel はじめました [4. 基礎]

※前回の記事は以下です

https://qiita.com/soso555/items/83de4dc95b49a42e85bd

# 概要
– 今回は [基礎](https://readouble.com/laravel/5.7/ja/routing.html) 編

# 基本的なルーティング
– Webページのルーティングは “`routes/web.php“` に以下のように記載しましょう
– 引数は URI とクロージャ

“`php
Route::get(‘foo’, function () {
return ‘Hello World’;
});
“`

– 以下のように URI とコントローラ名称、メソッド名称でも定義できるよ

“`php
Route::get(‘/user’, ‘UserController@index’);
“`

– API のルーティングは “`routes/api.php“` に記載しましょう
– URI に “`/api“` プ

元記事を表示

【Laravel】ルーティングをグループ化する

# Laravelのルーティングをグループ化
“`web.php
group(function(){
Route::get(‘/’, ‘UserController@index’)->name(‘index’);
Route::get(‘/user/{id}’, ‘UserController@show’)->name(‘show’);
});
“`
LaravelにはRoute::nameというメソッド?が用意されているらしい。
Route::nameという記述をすることで、この中のルーティングはどこのコントローラーへのルーティングを定義しているのかをすぐに読み解くことができる。
要するに、可読性を高めることができる。

元記事を表示

【Laravel】Laravelで正しくルート定義ができているか確かめる

# Laravelで正しくルート定義ができているか確かめる
“`
$ docker-compose exec workspace php artisan route:list
“`
これで、ルート定義が正しくされているか確認することができる。

“`
+———+————-+——————+——————+————————————————————–+—————-+
| Domain | Method | URI | Name | Action | Middleware |
+———+————-+——————+—————-

元記事を表示

チェックデジットの計算方法(PHPプログラム)

###チェックデジットの計算方法

チェックデジットの計算方法(プログラム)です、入力の桁数のチェックは
割愛したロジックになります。コマンドラインから実行ください。

尚、参考にサイトより(1)JAN コードのチェックデジットの計算方法を参照して作りました。
http://www.jpo.or.jp/magcode/info/checkdigit.html

“`bash:実行
php CheckDigit.php 491009971074
“`

“`php:CheckDigit.php

元記事を表示

【Laravel】ゲートを使ってみたよ〜

##はじめに
今回は実務で実装していて
ゲートを使って特定のユーザーに対してアクセスを制限させることを
まとめていきます。
ゲートを使わずに実装しようとしたら
10箇所ほどに条件分岐を加えないといけなかったけど
それが一手間で済むのでぜひとも参考にしてみてください!

##認可とは?
そもそも認可ってなんでしょう?
>認可(英: authorization)とは、一般的には情報セキュリティおよびコンピュータセキュリティに関わるリソースへの、とりわけアクセス制御へのアクセス権限を特定する機能である。よりフォーマルにいえば、「認可する (to authorize)」とは、アクセスポリシーを定義することである。例えば、人事部門のスタッフは従業員の記録にアクセスする権限を与えられており、このポリシーはコンピュータシステム内のアクセス制御規則として定式化されているのが普通である。システムはそのアクセス制御規則を使って、(認証された)利用者のアクセス要求を受け入れるか拒否するかを決定する。リソースには、個々のファイルやアイテムのデータ、プログラム、コンピュータハードウェア、コンピュータアプリケーシ

元記事を表示

カスタムフィールドのインストールから出力方法のまとめ

#どうも7noteです。カスタムフィールドのよく使う項目の使い方をまとめました。

Advanced Custom Fields

プラグインの**「Advanced Custom Fields」のインストールから、phpでの出力方法まで**を私が分かりやすく私が使いやすい用に私が良く使うものだけをまとめた記事です。

※すべての機能や変数は紹介しておりません。すべての出力が知りたい方はこちらの記事がわかりやすかったのでこちらへどうぞ。
https://bazubu.com/advanced-custom-fields-36452.html

## ①「Advanced Custom Fields」のインストールから準備

1. WordPressの管理画面から**「プラグイン」→「新規追加」から、検索覧に「ACF」**と打ち**「Advanced Custom Fields」をインストールし有効化**。
2. 同じく管理画面、**サイドメニューの「カスタムフィールド」**をクリック。
3. **「新規追加」を押し、追

元記事を表示

OTHERカテゴリの最新記事