PHP関連のことを調べてみた

PHP関連のことを調べてみた

bluesky api php で post

参考
https://mgng.mugbum.info/1699

# blue sky で post したい

1 アプリパスワードを作成
https://bsky.app/settings/app-passwords

2 パスワードを設定

“`.env
BLUESKY_APP_PASSWORD = xxx-xxxx-xxx-xxx
“`

“`app.php
‘bluesky_app_password’ => env(‘BLUESKY_APP_PASSWORD’)
“`

続いてモデル

“`bluesky.php
class Bluesky extends Model
{

public $jwt;
public $handle;

public function __construct($handle,$password)
{
$this->handle = $handle;

$ch = curl_init(“https://bsky.social/xrpc/com.atproto.serve

元記事を表示

Laravel にてユニットテスト実行時、DBの外部キー制約を無効化する

よく忘れるのでメモ

というか調べていて初めて知りましたが、いつの間にやらLaravel標準で用意してくれていた模様

“`php
use Illuminate\Support\Facades\Schema;

// 外部キー制約を無効化
Schema::disableForeignKeyConstraints();
// 外部キー制約を有効化
Schema::enableForeignKeyConstraints();
“`

## 以前のやり方

利用しているのが MySQL だったので問題ありませんでしたが、どうやら PostgreSQL では動かないようで…

やはりLaravel標準で用意されていたらそれを使うに限りますね

“`php
use Illuminate\Support\Facades\DB;

// 外部キー制約を無効化
DB::statement(‘SET FOREIGN_KEY_CHECKS=0;’);
// 外部キー制約を有効化
DB::statement(‘SET FOREIGN_KEY_CHECKS=1;’);
“`

## 改めて使い方

元記事を表示

【CakePHP5】PHPUnitでテストをしてみる

# はじめに

こんにちは、エンジニアのkeitaMaxです。

今回は、以前作成したCakePHPの環境をつかってテストコードを書いていきます。

https://qiita.com/keitaMax/items/6152aa9fff66bee4e887

# インストール
>CakePHP には PHPUnit をベースとした高度なインテグレーションが組み込まれており、PHPUnit 本体が持つ機能に加えて、CakePHPでテストをスマートに管理するための便利な拡張機能を備えています。
(引用:https://book.cakephp.org/5/ja/development/testing.html)

CakePHPはインストールしなくてもすでに組み込まれているので、インストールは必要ないです。

# テストを作成

コントローラとモデルを作成するコマンドを打った時に一緒にテストを書くファイルお作成されます。

コントローラとモデルを作成については以前記事書いているので以下を参照してください。

https://qiita.com/keitaMax/items/b260eb38

元記事を表示

これであなたもマルチリンガル!?色んな言語であいさつしてみよう

# はじめに
みなさん,言語を学び始めるときにはじめに覚えるものはなんですか?そう!**『あいさつ』** です.これは自然言語に限らず,プログラミング言語でもそうです.どんな言語もまずは`Hello World!`の出力方法から学ぶはずです!!っということで,今回は全何種の言語であいさつをしてみましょう.この記事を読めばあなたもマルチリンガルになっているはずです^^

# 人気言語10選
ここに書かれているランキングですので,自分にとっての好きな言語ランキングなどあれば,コメントに書いておいてください!!

https://codezine.jp/article/detail/19530#:~:text=2024%E5%B9%B4%E4%BA%BA%E6%B0%97%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AF%E3%80%811%E4%BD%8D

元記事を表示

PhpStormが思いのほかよくなっていた

# 久しぶりにPHPを使う

皆さんは、PHPを書くとき何を使っていますか?
昔はsakura editorや秀丸を使っていましたが最近はもっぱらPhpStormが多いです。
1ファイルだけのバッチっぽい何かの場合は、VsCodeでちゃちゃっとする事もありますが
ファイル分割が必要な規模は、基本的にPhpStormを使います。

## PhpStormの何が良いのか?

個人的にPhpStormのここが良いと思う所は大ざっぱに以下の様なものになると思います。
・インストールした瞬間PHPで必要そうなものは大体入っている
ものぐさな私からすると必要なプラグイン(似たようなプラグインが山のようにあるので選定するのがつらい)を探さなくてよい事です。
・他言語用の統合環境も一通り揃っており操作感もほぼ同じ(全部のせコースを使っている為)
・地味に機能が豊富(設定周りもかなり充実している)
・ローカル AI による行全体コード補完(NEW)

## ローカル AI による行全体コード補完(NEW)

今回は、この機能について話したいと思います。
この機能は、2024.1のバージョンに実装されたも

元記事を表示

CakePHPプロジェクトの作成と実行方法

# CakePHPプロジェクトの作成と実行方法

## CakePHPとは?

[CakePHP](https://cakephp.org/)は、開発者が迅速にWebアプリケーションを構築できるように設計されたオープンソースのPHPウェブフレームワークです。MVC(Model-View-Controller)アーキテクチャに基づいており、データベース操作、フォーム処理、認証、セッション管理などの一般的な開発タスクを簡素化する強力なツールキットを提供します。

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qtmbun5z5bqbisz9px85.png)

## CakePHPの主な機能と利点

– **迅速な開発**: 豊富なコード生成ツールを提供し、開発者が一般的なコード構造を迅速に作成できるよう支援します。
– **柔軟で強力なORM**: 組み込みのORM(オブジェクト・リレーショナル・マッピング)レイヤーがデータベース操作を簡素化します。
– **セキュリティ**:

元記事を表示

PHP+Apache+MySQL+phpMyAdminのDocker環境構築してみた!

# はじめに
今年の4月から未経験で関西の受託開発企業に就職し、エンジニアとして働いている者です。これまでXAMPPを使ってローカルで開発を行っておりましたが、新しい技術にも挑戦したい考え、Dockerで開発環境を構築してみました。その時の復習として本記事を書きました。
間違い等ございましたらご指摘をバンバンいただけると幸いです。

# 対象者
– PHPの環境をDockerを使って構築をしたい方
– XAMPPからDockerへ移行したい方

# 目的
– DockerでXAMPPっぽい開発環境を構築し、phpMyAdminとphpinfoをブラウザで表示させる!

※MacBook Air M2 Sonoma14.4、windows 11で動作確認済みです。
※PHPのバージョン7.4.8、 MySQLのバージョン8.1の環境を作成します。

# 目次
| 章 | タイトル |
|—:|————-|
| 1 |Dockerについて|
| 2 |ディレクトリ構成|
| 3 |Dockerfile作成|
| 4 |docker-compo

元記事を表示

LaravelでCSVファイルをインポート(maatwebsite/excel)

LaravelでCSVファイルのインポート機能を作成しようと思い、maatwebsite/excelというライブラリを使ってみました。
メモとして使用例を残しておきます。

## インストール

公式に則って行います。
https://docs.laravel-excel.com/3.1/getting-started/installation.html

“`
composer require maatwebsite/excel
“`
“`
php artisan vendor:publish –provider=”Maatwebsite\Excel\ExcelServiceProvider” –tag=config
“`

`config/excel.php`というファイルが作成されます。

## 前提

今回アップロードしたいCSVのサンプル
“`
企業名,郵便番号,住所,電話番号,代表者名,担当者名,備考
テスト02株式会社,2203456,埼玉県上尾市井戸木,090-4736-0924,佐藤,中島,テストです
“`
上記の1行目をタイトルとして認識させ、2行目

元記事を表示

array_reduceの使用例メモ

array_reduceはPHPの組み込み関数です。

・PHP公式はこちら
https://www.php.net/manual/en/function.array-reduce.php

関数の詳細説明は公式におまかせするとして、この記事ではこんな使用例があったというメモです。

例えば下記のようなコードを書いたとします。

“`php
public function getAmountIncludingTax(array $postings)
{
$totalPrice = 0;
foreach ($postings as $postings) {
$totalPrice += $postings->price;
}
return compact(‘totalPrice’);
}
“`

あるクラスの中にあるメソッドだけを切り取ってます。

`$totalPrice`を初期値で設定して`$positngs`をループで回して、priceカラムを足し合わせるといったものです。

これを下記のようにarray_reduceで書くことができます。

“`

元記事を表示

WebサイトのXSS脆弱性絶対転がす ―Content Security Policyのすすめ―

PHPカンファレンス福岡2024で発表した資料です

元記事を表示

PHPUnit\Framework\SkippedTestError:

https://github.com/sebastianbergmann/phpunit/blob/a2bc7ffdca99f92d959b3f2270529334030bba38/src/Util/Annotation/DocBlock.php#L290

データプロバイダのdataが`[]`のとき、タイトルのようなエラーが発生する

“`php
/**
* Returns the provided data for a method.
*
* @throws Exception
*/
public function getProvidedData(): ?array
{
/** @noinspection SuspiciousBinaryOperationInspection */
$data = $this->getDataFromDataProviderAnnotation($this->docComment) ?? $this->getDataFromTestWithAnno

元記事を表示

EloquentのchunkとchunkByIdの違いと使い分け

:::note

AI要約

– chunkメソッドは、データをオフセットとリミットで分割して処理する
– chunkByIdメソッドは、主キー(ID)を基準にデータを分割して処理する
– chunkメソッドは、データの追加や削除でオフセットがずれるリスクがある
– chunkByIdメソッドは、主キーにより安定したチャンク処理が可能
– 動的データにはchunkById、静的データにはchunkメソッドを使用すると良い

:::

## はじめに
以前`chunk`メソッドに関する記事を書きました

https://qiita.com/t1k2a/items/25f145135a16bc5e3f44

しかし`chunk`メソッドを使用するとデータ更新の際に予期しないことが起きてしまうので
その対策として`chunkById`メソッドがあります
それぞれの違いを見ていきたいと思います

## `chunkById`メソッドとは
主キーを使用してデータをチャンク(塊)に分割し、各チャンクを順次処理します
チャン

元記事を表示

【CakePHP5】コントローラとモデルを作成する

# はじめに

こんにちは、エンジニアのkeitaMaxです。

前回の記事の続きです。

https://qiita.com/keitaMax/items/953002976f2b38e298c5

今回はコントローラとモデルを作成します。

# コントローラを作成

以下コマンドでコントローラを作成します。

“`
bin/cake bake controller articles
“`

実行すると以下のようになります。

“`
root@04a17a8a001b:/app# bin/cake bake controller articles
Baking controller class for Articles…

Creating file /app/src/Controller/ArticlesController.php
Wrote `/app/src/Controller/ArticlesController.php`
Bake is detecting possible fixtures…

Baking test case for App\Cont

元記事を表示

LaravelでAPIをサクッと作成するための指南書

# サクッとLaravelでAPIを作る

“`
作成日: 20240625
最終更新日: 20240626
“`
## 前提
初学者が超簡易的なAPIを作成してみるをテーマにしたレベル感
PHPとcomposerの環境構築がされていること
DBサーバーを仮想環境やローカルに構築済みであること

## 目次

– [サクッとLaravelでAPIを作る方法](#サクッとlaravelでapiを作る方法)
– [前提](#前提)
– [目次](#目次)
– [Laravelプロジェクトの作成](#laravelプロジェクトの作成)
– [envの設定](#envの設定)
– [トラブルシューティング](#トラブルシューティング)
– [Modelの作成](#modelの作成)
– [ソース例](#ソース例)
– [Controllerの作成](#controllerの作成)
– [ルーティングの設定(api.php)](#ルーティングの設定apiphp)
– [ここまでこれたらAPI完成](#ここまでこれたらapi完成)
– [番外編: エラーで困ったらとりあえずキャ

元記事を表示

PHPカンファレンス福岡2024の感想

## はじめに

PHPカンファレンス福岡2024のスタッフの皆様ありがとうございました。
また、登壇者の方々、大変参考となるセッションありがとうございました。
初めてPHPカンファレンスに参加したのですが、PHPerの皆様のノリの良さに驚きました。
そして登壇者の方々の熱意と知識に刺激を受けました。

## 各セッションの振り返り

### [PHPコードの実行モデルを理解する](https://speakerdeck.com/shin1x1/understanding-the-php-execution-model)([@shin1x1](https://x.com/shin1x1))

今までどのようにPHPのコードが実行されているかを考えずに過ごしてきたのですが、オペコードに変換されて実行されるということを初めて知りました。
また、php-fpmの実行モデルの説明の中でキャッシュ機構があることを知り、試してみたところ速度がかなり上がり大変助かりました。
オペコードの生成方法から勉強します。

### [Fat Controller は開くか? 〜光のFat Controller

元記事を表示

コーディングを愛し、残業を減らす5つの必須プログラミングツール

### コーディングを愛し、残業を減らす5つの必須プログラミングツール

「CVエンジニア」として、コードをコピペするのが日常業務ですが、今日のツールがこれほど便利になるとは思いませんでした。以下は、私の効率を大幅に向上させ、残業時間を減らしたいくつかのツールです。

#### [Fronty](https://fronty.com/)

フロントエンドエンジニアは、ウェブデザインをHTMLとCSSコードに変換する必要があります。手動でコードを書くのは時間がかかり、エラーが発生しやすいです。これにより生産性が低下し、デザインと開発の自由度が制限されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782463/0a8be9de-d0da-72fe-3f4d-fd883806b0fc.png)

私はFrontyを見つけました。これは、ウェブプロトタイプをクリーンなHTMLとCSSコードに直接変換する強力なサービスツールです。FrontyはAI駆動のサービスで、人工知能を活用してウェ

元記事を表示

Laravelで大量データを扱う:chunkメソッドの基礎と実践

## はじめに
最近、大量のデータを扱う対応をいたしました
もちろんそのまま取得すると動作が重くなったりサーバーへの負荷が重すぎてしまいます
そのため、取得数の制限をしたかったのですが、すべてのデータを使用する必要があったのでせめて分割で取得できればなと思いました
そんな中で見つけた`chunk`が今回のような状況にピッタリだったので調べた内容を記事にします

https://readouble.com/laravel/8.x/ja/eloquent.html#:~:text=flight%2D%3Ename%3B%0A%7D-,%E7%B5%90%E6%9E%9C%E3%81%AE%E5%88%86%E5%89%B2,-all%E3%81%BE%E3%81%9F%E3%81%AFget

## `chunk`メソッドとは
– `chunk`メソッドは、指定したサイズごとにクエリ結果を分割して取得して、第2引数のクロージャ関数で処理を実行します
– 分割したレコードをそのまま参照できるのではなく、分割したうえで何かしらの処理を実行させなければならなりません

“`php
$u

元記事を表示

array_filter関数

プルダウンを使ったarray_filter関数のサンプル

# 配列定義
“`php

// フルーツ種類定義
define(“APPLE”, 1);
define(“BANANA”, 2);
define(“ORANGR”, 3);
define(“CHERRY”, 4);
define(“GRAPE”, 5);

// フルーツ配列
define(
‘FRUIT’,
array(
APPLE => ‘りんご’,
BANANA => ‘バナナ’,
ORANGR => ‘オレンジ’,
CHERRY => ‘さくらんぼ’,
GRAPE => ‘ぶどう’,
)
);
“`

# array_filterで範囲を指定
バナナまでの表示に設定

元記事を表示

ページネーションにしたい配列を突っ込むだけ

1ページ当たり100件、ボタン表示数5個までのPHPページネーションサンプル。
変数定義の部分の$dataにページネーションにしたい配列を突っ込んで使ってください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3648477/9974a2f0-613a-9f25-0bca-07a09230a097.png)

# 定数

PAGER_DISP_NUM
ボタンを何個まで表示するか
PAGER_DATA_NUM
1ページにつき何件のデータを表示するか
PAGER_RANGE_BEFORE
現在のボタンの前方向に表示するボタン数
PAGER_RANGE_AFTER
現在のボタンの後方向に表示するボタン数
PAGER_RANGE_FIRST_LAST
最初と最後ボタン数<

元記事を表示

【Laravel11】1分に1回自動で実行するバッチを作成する

# はじめに

こんにちは、エンジニアのkeitaMaxです。

今回はLaravel11を使用してバッチを作成していきたいと思います。

# ファイル作成(コマンド作成)

以下のコマンドを使用してバッチを作成します。

“`
php artisan make:command ExampleBatch
“`

実行すると、`src/app/Copnsole/Commands`ディレクトリ配下に`ExampleBatch.php`というファイルが作成されます。

“`php:ExampleBatch.php

元記事を表示

OTHERカテゴリの最新記事