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

PHP関連のことを調べてみた2022年03月17日
目次

【Laravel】AppServiceProviderにカスタムバリデーションを登録する。

自分用のメモとして残します。

AppServiceProviderのboot内に定義することで、暗黙的にインクルードされる。
そのため、フォームリクエスト内やコントローラ内でバリデーションで直ぐに使える。

# やり方

AppServiceProviderに任意のバリデーションルールValidator::extendで定義する。
下記の例は入力値を半角全角のカタカナ英数字を正規表現で判定します。
**katakana_or_number_or_abc** 呼び出せる。

“`app\Providers\AppServiceProvider.php

元記事を表示

Jsでボタンを押して文字を入力する方法

# はじめに
こんにちは!web系エンジニアを目指いしているLionです。
最近Laravelを使ってwebアプリを作っているのですが、ユーザーに文字を打ち込んでもらうのは面倒だし検索にも引っ掛かりにくい感じたのでボタンを押して入力できるものを作成いたしました。

# insertAdjacentHTMlを使った方法
JsのinsertAdjacentHTMl(“位置”, ‘入れたい文字’);
を使うと文字を入力することができいます。

たとえば・・・
“`html
//テキストエリアを作りidを設定!
//今回はinputタグを使ってボタンを作成
“`

“`Javascript
function OnButtonClick() {
target = document.getE

元記事を表示

【Laravel】TCPDF+FPDIでPDFに文字入れを行う

業務で `Laravel` のアプリケーションにおいて、**「既存のPDFファイルを読み込み、文字入れをした上でPDFファイルを出力する」** という実装を行ったので、備忘録としてまとめておきます。

## 使用するライブラリ

– **TCPDF**

PHPでPDFを生成できるライブラリ。
[https://github.com/tecnickcom/tcpdf](https://github.com/tecnickcom/tcpdf)

– ****FPDI****

既存のPDFを読み取り、TCPDFのテンプレートとして使用できるようにするライブラリ。
[Download the FPDI tool from ▷ setasign.com](https://www.setasign.com/products/fpdi/downloads/)

上記の2つのライブラリを使用するので、先にインストールしておきます。
※インストール方法については以下の記事を参照。
[【TCPDF+FPDI】PHPで領収書PDFに文字を出力する方法](https://hsmt-web.com/blog

元記事を表示

【PHP】タグ機能①

プロフィールなどで、スキルや資格等を登録する際のタグ機能を実装しました。
![tag3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/2f4e8c6d-4158-360b-9f1e-5c09f74f346e.gif)

# 予測変換のタグ作成
jQuery UIのautocompleteを用いて、予測変換機能を実装します。
こちらのサイトを参考にさせていただきました。

https://ueyama.blog/?p=89

今回はプログラミング言語を中心とした、IT用語をタグとして実装します。

“`php:autocomplete.php
:
$list = array(
‘AWS’,
‘Bootstrap’,
‘C’,
‘CakePHP’,
‘C#’,
‘C++’,
‘COBOL’,
‘CSS’,
‘Docker’,
‘Go’,
‘Git’,
‘HTTP’,
‘iOS’,

元記事を表示

独学エンジニア – hit & blow の数を集計するプログラム

独学エンジニアのクイズにて、hit&blowの集計プログラムを作る課題があったため備忘録も兼ねて記事を記載しました。
※実際の模範解答とは異なります。

[1.前提条件](#前提条件)
[2.要件定義](#要件定義)
[3.設計/コード内容](#設計/コード内容)
[4.実行結果](#実行結果)

# 前提条件
作成/学習にあたりDocker、PHPはVer 8.1.1を使用しております。
著作権の観点から、一部要件内容について改変しております。
実際のクイズではPHPUnitを使用することが要求されていますがQiitaではPHPUnitは考慮せずコードを記載します。

# 要件定義
__輝明と嘉男はHIT&BLOWで遊んでいます。ルールは以下の通りです。__
1. 出題者は重複した数を含まない4桁の数を決める(4442、2233などはNG)
2. 回答者は4桁の数を予想する
3. 出題者は解答者の予想を判定する。数と桁の療法が同じならヒット、数だけが同じで桁が異なればブローと呼ぶ。例えば正解が5678で回答が2687なら「1ヒット、2ブロー」となる
4. 2、3を繰り返し、4桁の数が

元記事を表示

Markdown記法をPukiWiki記法へ変換するスクリプトMD2PKWKをつくった

PHPなのですが、CLIのみで動作するPHPスクリプトとなります。
Webではないので注意を
PHPをインストールし、phpの環境変数を設定しないと動きません。

# ソース&ダウンロード
https://github.com/PTOM76/MD2PKWK

# 使い方
コマンドプロンプト、ターミナル上で`php md2pkwk.php <ファイル名.md>`を実行します。
ファイル名は変換したいマークダウンファイルを指定してください。

# ライセンス
MITライセンスですのでご自由にどうぞ。

元記事を表示

Laravel ミドルウェア

# 概要
ミドルウェアは、HTTPリクエストを**検査およびフィルタリング**する。

例えばユーザ認証を確認して、認証されていない場合であれば
アプリケーションのログイン画面にリダイレクトする。

認証されていればリクエストをアプリケーションへ進めることを許可する。

# 定義
ミドルウェアの作成はartisanコマンドを使用する

“`
php artisan make:middleware Authenticate
“`

すると、`Authenticate`クラスを含むファイルが`app/Http/Middleware`に配置される。

# 記述例

“`php
class Authenticate
{
// リクエスト処理
public function handle($request, Closure $next)
{
// トークンが一致しなければリダイレクト
if ($request->input(‘token’) !== ‘my-secret-token’) {
return red

元記事を表示

【Laravel】Web開発初心者が1週間で入門チュートリアルを実施した記録(1)~(3)

実施したのは、以下。

https://qiita.com/MasahiroHarada/items/eddad4cbf5e567393988

2018年の記事だが、少しの読み替えで問題なく稼働するTodoアプリを作成することができた。
Laravelの概観を掴むことができたので、筆者のMasahiro Haradaさんには感謝しかない。

自身の備忘とこれからLaravelを学んでいきたいというかたの参考になればと思い、ここに記す。

入門Laravelチュートリアル (1) イントロダクション
環境構築について。参考にしつつ、今回は以下の環境で実施した。

■実施環境
OS : macOS Montery (M1)
Laravel : Version 8.83.4
DB : PostgreSQL 14.2
エディタ : VSCode
※仮想環境(HomesteadやValet)は使用せず、ローカルで開発

実施期間 : 2022/03/09 ~ 2022/03/16

入門Laravelチュートリアル (2) ToDoアプリケーションの設計
設計について。熟読。

以下に

元記事を表示

【Laravel】withとwhereHasを同時に実行するscopeを実装

## 対象読者
以下の基本的な知識がある人

– リレーション
– APIリソース
– `with`、`whereHas`メソッド

## 実行環境
– PHP 8.0.15
– Laravel 8.83.1

定番の`User`, `Post`モデルを例に解説していきます。
各モデルのリレーションメソッドは定義済みとします。

## 通常の書き方
1. `id = 1`のユーザー
1. 1. のユーザーの今日以降の投稿

上記データを同時に取得したいとします。

リレーション先のEager Loadingと検索を同時に行いたいときは、
`with`と`whereHas`を組み合わせます。

“`php:
$users = User::with(‘posts’)
->whereHas(‘posts’, function ($q) {
$q->where(‘created_at’, ‘>=’, today());
})->find(1);
“`

## 問題点

うっかり`with`を書き忘れたとしましょう。

“`php:
$users = Use

元記事を表示

WordPressのAdvancedCustomFieldsに「JavaScriptで」デフォルト値を設定する方法

# はじめに

以前、[PHPでWordPressのデフォルト値を設定する方法](https://qiita.com/qwe001/items/2c05a2be5434eb9a092d)を説明しました。
ですが、私の案件は、ページ読み込み時にデフォルト値を設定するのではなく、
特定のカスタムフィールドの値変更をトリガーにして、デフォルト値を設定するというものです。

$\tiny{…いる?}$

そのため、JavaScriptでinput changeイベントを取らなくてはなりません。
でも、ACFのデフォルト値を変更する方法は、PHPでのやり方ならネットにいくらでもありますが、
JavaScriptで書き換える方法が全然載ってないので、備忘録がてら書くことにしました。

# 仕様

* ページ読み込み時は何もしない
* 表示開始日付(open_date)の値が更新された時、表示終了日付(close_date)に一カ月後の値をセットする
* 表示終了日付(close_date)に既に値がある場合、何もしない

# 下準備

まずは、管理画面でだけ使うJavaScriptファイルを用意し

元記事を表示

【Laravel】UUIDカラムをURLに割り当てるとルートに割当されなかったので

# 概要

主キーを`UUID`にする必要があったので以下の記事を参考に導入した。

ルートモデルバインディングで`UUID`を割り当てると`404`エラーでルートに到達できない事象があったので解決方法をまとめる

“`php:web.php
group(function () {
Route::get(‘/edit/{uuid?}’, [PostController::class, ‘edit’])->name(‘admin.posts.edit’);
});
“`

https://qiita.com/ucan-lab/items/a8374ba421fe7828dcb9

# 環境
– PHP 7.4.25
– Laravel Framework 6.20.44
– laravel-eloquent-uuid v6.*

# 導入手順

https://github.com/goldspecdigital/laravel-eloquent-uuid

“`bash
composer require gold

元記事を表示

Ruby、PHP、Python、JavaScriptの特徴とコードを比較してみた(言語選定と言語チェンジのための参考資料)

# この記事の概要
代表的なプログラミング言語“`Ruby、PHP、Python“`といったWeb開発などで使われる
人気のバックエンドの言語をそれぞれ比較した記事です。

後フロントエンド言語の“`JavaScript“`も比較していきます。

初学者でどの言語をやればいいのかわからない時、
言語を変える時の参考になると幸いです。

# Webの仕組み
クライアントとサーバーの関係とリクエストとレスポンスの関係がわかれば
今回は大丈夫です。

https://qiita.com/Hashimoto-Noriaki/items/c5c9eb26565b01150556

***サーバー側で処理をするのがRuby、PHP、Python***で
***クライアントのようなブラウザを操作するのがJavaScript***です。

## Ruby
Rubyは初学者向きのプログラミング言語で、
プログラミングスクールでよく使われる言語です。
***Webアプリケーションの開発で使用されるサーバーサイド言語***です。

フレームワークの代表的なのが***Rubyon rails***で

元記事を表示

よくわかるPHPの教科書 たにぐちまこと

PHPは、研修助手をしたことがある。

実用的なプログラムは1mmも書いたことがない。

学生、研修生のPHPのレビューをしたことがある。

1mmも意見を言っていない。

みんなの意見に「そうだね」って乗っかるだけ。

<この項は書きかけです。順次追記します。>

よくわかるPHPの教科書

https://bookmeter.com/books/12784536

この本の何がいいかって、文法からはじめていないとこ。

最初に覚えるプログラミング言語は何がいいですか?

https://qiita.com/kaizen_nagoya/items/590704e76e287707637b

PHPから動かした人に、どういう助言をするといいか見渡そう。

# 参考資料

「DockerでPHP7.0×Apacheの環境を構築する@kurkuru」IT業界新人利用時の16の壁(mac mini編)docker(80)

https://qiita.com/kaizen_nagoya/items/315e8d05a6eef00b56d1

<この記事は個人の過去の経験に基づ

元記事を表示

CodeIgniter CRUDサンプルコード及び認証

# 1.始めに
 受注した案件でCodeIgniterを使うことになりましたので勉強と備忘録を兼ねて記事を残すことにします。CodeIgniterはPHPフレームワークの一つです。詳しく知りたい方はググってください。ここではチュートリアルのコードを拡張してCRUDのサンプルコード書きましたので入門者の参考になればと思います。なお、composer又は公式サイトからファイルをダウンロードする形のいずれかのやり方でプロジェクトを作成済みとして話を進めます。

動作環境:
Windows11
xampp
CodeIgniter4

# 2.CRUD
 Webフレームワークを扱う方にとってはCRUDって身近な用語だと思います。Create, Read, Update, Deleteの略で、この基本形と認証周りさえ扱えればアプリのバックエンドの構築には困りません。
 早速CRUDのコードの方から書いていきます。DB設計とかはCodeIgniterのチュートリアルに合わせてますのでチュートリアルがまだの方は後述のサイトからチュートリアルをやってみてください。

“`php:アプリ名\app\Mo

元記事を表示

smartyの値を確認する方法(var_dumpが使える)

– smartyの中身を確認するコマンド。
– PHPでvar_dumpを使うことがあると思うが、smartyでもvar_dumpを使うことができる。

## 使い方
“`smarty:var_dunp
{{$hoge|@var_dump}}
“`
$hogeの値を確認することができる。
( {} が1個か2個は自分が使用している方で書く。)

元記事を表示

[Laravel][スノーボード初心者に役立つサービスを作りたい!]という思いでポートフォリオを作成しました。

# アプリ概要
スノーボードでできない技や、わからいことを解決したい!と思いスノーボードに関するQ&Aサイトを作りました。
# advance
![Animation3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2565050/34ef427b-8106-f854-e06e-53fbe2cd4106.gif)
サイトリンク↓

https://snowboarder.herokuapp.com/home

コード↓

https://github.com/orange7354/snowboard

# 開発の目的 背景 狙い
## 目的
– スノーボードに関する疑問やスキル上達に役立てるため

## 背景
– 大学生になりスノーボードを始める人が多く、周りに上級者がいない人が多い。
– トリックや滑り方が分からず挫折する人が多い。
– どこが出来ていないか分かりづらくなかなか上達しにくい

## 狙い
– 上達スピードの効率化
– 上手に出来ず挫折する人を減らす
– 写真や動画をuploadeする事

元記事を表示

Windows で PHP8+Apache+MySQL+phpMyAdmin の開発環境をXAMPP無しで構築する方法

# 初めに
C直下に置く方法はあってもそれ以外で構築する方法が探してもなかったので掲載。
個人的に開発関係は`C:\Program Files (dev)`というディレクトリに保存していたので、ここに、
`C:\Program Files (dev)\Apache`
`C:\Program Files (dev)\php`
みたいな感じで配置する。
各ソフトの設定もそのディレクトリに合わせて変更する。

# PHP8
概要は、PHPをダウンロードしてパスを通すだけの簡単なお仕事です。
### 1. Download PHP

https://www.php.net/downloads.php

ここにPHPのダウンロード一覧があるので、`Current Stable PHP8.*.* (Changelog)`ってところの、`・Windows downloads` からダウンロードページに飛ぶ。

いろいろあるが、`x64 Thread Safe`の大枠のところから、Zipを選択してダウンロードする。

### 2. 配置
ダウンロードしたファイルを解凍して、任意の場所に配置する。冒頭に

元記事を表示

Laravel: composer update したら500エラー(このページは動作していません: HTTP ERROR 500)

[結論から読みたい人はコチラ](https://qiita.com/chimayu/items/da893e5f5cef1c02fbb1#%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95)

#### 環境

Laravel 6.x + docker-compose (PHP 7.3 / nginx 1.9 / Redis 5.0) を使用。

“`zsh
% php artisan -V
Laravel Framework 6.18.24
“`

マシンにプリインストールされているPHPは `7.4.28`

“`zsh
% php -v
PHP 7.4.28 (cli) (built: Mar 1 2022 01:37:04) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies
“`

Dock

元記事を表示

WordPressでサブループをよく使う場面

普段仕事でWordPressを使用するので、サブループをよく使用する場面をメモ。

## トップページでカスタム投稿の記事を3件だけ出力したい

3件じゃなくてもいいのですが…コーポレートサイトではほぼ間違いなくあるんじゃないでしょうか。

例えば「新着情報」として、informationというカスタム投稿を出力したい場合
“`php
$paged,
‘posts_per_page’ => 3,
‘post_type’ => ‘information’
));
if ( $query->have_posts() ):
while ( $query->have_posts() ) : $query->the_post();?>

// ループの内容



“`

ちなみにifとwhileは一緒の

元記事を表示

TinyMCEにPDFアップロード機能を実装する方法

# デモ

See the Pen
TinyMCE PDF File Upload Example
by qwe001 (@qwe001)
on CodePen.

<

元記事を表示

OTHERカテゴリの最新記事