- 1. 【Laravel】Illuminateにある主要メソッド Cache編
- 2. [PHP] 可読性0の短めなbase64エンコード・デコード関数
- 3. 🌟 エキサイティングなニュース: ServBay 1.3.9がリリースされました!
- 4. PhpStormでコードを実行しようとすると`Cannot run program “/usr/local/bin/docker-compose”`のエラーとなる
- 5. 【Laravel】Illuminateにある主要メソッド Cookie編
- 6. PHPコア開発者になって半年経ったので、php-srcでの活動を振り返る
- 7. 押さえておきたいセキュリティと対策!
- 8. laravelでthe stream or file /var/www/html/storage/logs/laravel.logエラーが出たときの対処
- 9. 【Laravel】Illuminateにあるメソッド Auth編
- 10. 【PHP】2024年のPHP開発者を支える中心人物たちを勝手に紹介するよ
- 11. PHPでSSL関連のエラーでハマった件
- 12. 【Laravel】抽象メソッドとは
- 13. php8+phalcon5+nginx+windows10 環境構築メモ
- 14. 初めての個人開発
- 15. 配列同士の共通部分を見つける
- 16. 【Laravel】CSVファイルの中身にバリデーション(maatwebsite/excel)
- 17. 【PHP】PHP7.4から8.1にバージョンアップしてみた
- 18. 【PHP】Enumでの検証を簡単にする
- 19. 【PHP】Fizz Buzz (paizaランク C 相当)をやってみた
- 20. 【PHP】正規表現でハッシュタグを抽出したい
【Laravel】Illuminateにある主要メソッド Cache編
## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。### 言語
– Laravel8## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**## Illuminate\Cache
– キャッシュ機能を提供。データベースやその他の外部リソースへのアクセスを減らし、アプリケーションのパフォーマンスを向上させることが期待できる。## Illuminate\Cache\Repository
– “Repository“クラスはキャッシュ機能を管理するためのメソッドを提供。
### “get($key, $default = null)“
– 指定されたキャッシュデータを取得
“`
[PHP] 可読性0の短めなbase64エンコード・デコード関数
## あいさつ
こんにちは、 [codebydeer.com](https://codebydeer.com) の UziDeer です。
今回はphpを2進にしたり+/=を取り除いたりの関数を、できるだけ短い(?)コードで書きました。
作った理由には、phpのbase64関連の関数があんまり充実していなく、軽く調べてみても冗長なものしか無かったということに加え、自分のコードの内容理解を深めようと思ったからです。
短く書こうと頑張ったら可読性が死にました(笑)では見ていきましょう。
フォローしてくれたらうれしいな
↓https://x.com/codebydeer
## 書いたコード
phpのbase64関連関数たち
“`php
$b64Arr = range(“A”, “Z”) + range(“a”, “z”) + range(“0”, “9”) + [“+”, “/”]; //base64の64進の数字になる[A-Za-z0-9+/]の文字の配列を用意function b64
🌟 エキサイティングなニュース: ServBay 1.3.9がリリースされました!
最新のServBayアップデートを発表できることを嬉しく思います。開発ワークフローを加速させる新機能が満載です!バージョン1.3.9で期待できることは次のとおりです
### 1.3.9の新機能
– **クイックサーチマジック:** 新しい検索機能でホストやDNS設定を素早く検索—必要なものを瞬時に見つけることができます!⚡
– **お気に入りを手元に:** よく使うホストやメニューバーアイテムにスターを付けて、すぐにアクセス。あなたのワークフロー、お気に入りに合わせて!🌟
– **メニューバーの刷新:** メニューバーを整理して、簡単にナビゲートできるようにしました。シンプルさと効率性が全てです。
– **UIアップグレード:**
– 新しい「フォルダを開く」ボタンでプロジェクトに直行。
– ダッシュボードのテキストがあなたの言語で表示され、よりローカルな感じに。
– アップデート後すぐに新機能を発見—最先端を簡単にキャッチアップ。
– 最適化されたUIディテールで滑らかな操作を体験。
![image.png](https://qiita-image-store.s3
PhpStormでコードを実行しようとすると`Cannot run program “/usr/local/bin/docker-compose”`のエラーとなる
## 現象
あるPHPコードを実行しようとすると以下のエラーが発生した。
“`
com.intellij.docker.agent.ApiTaskException: com.intellij.execution.process.ProcessNotCreatedException: Cannot run program “/usr/local/bin/docker-compose”
“`## 環境
### OS
“`
sw_vers
ProductName: macOS
ProductVersion: 14.5
BuildVersion: 23F79
“`### Docker
“`
docker -v
Docker version 27.0.3, build 7d4bcd8
“`### Docker Desktop
“`
Docker Desktop 4.32.0 (157355) is currently the newest version available.
“`## 解決方法
`設定 -> ビルド、実行、デプロイ -> D
【Laravel】Illuminateにある主要メソッド Cookie編
## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。### 言語
– Laravel8## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**## Illuminate\Cookie
– クッキー操作を管理するためのクラスがある。
:::note
Cookieとは、、、
初めてアクセスしたWebサイトに、訪問したユーザーを識別できる情報が保存されること
:::## Illuminate\Cookie\Cookiejar
– “Cookiejar“クラスでクッキーの作成、取得、削除などの操作を行うメソッドがある### “make($name, $value, $minutes = 0,
PHPコア開発者になって半年経ったので、php-srcでの活動を振り返る
こんにちは!PHPとCを主に書いています、Sakiです。日中はBASE株式会社さんでお仕事させていただいています。早朝と夜間にphp-srcでの活動をしています。PHP8.4のリリースマネージャーもやってます。
2024年からありがたいことにPHPコア開発者として採用していただき、半年とちょっとになりました。ちょうど一区切りということで、これまでの活動を簡単にまとめたいと思います。細かいものや、最終的に成果が出なかった(議論がまとまらなかったなど)ものは除外しています。
# 2023年、コア開発者になる前
実は私はphp-srcどころかOSSの経歴がかなり短いです。
## はじめてのコントリビュート
PHP8.1から、PDO MySQLでmysqlndをドライバとして使用し、`PDO::ATTR_EMULATE_PREPARES`が`true`の場合、PHPのネイティブタイプで値が返される、というように仕様が変更されました。従来の動作を望むなら`PDO::ATTR_STRINGIFY_FETCHES`を`true`にしてね、とドキュメントには記載されています。ところが、(すでにM
押さえておきたいセキュリティと対策!
こんにちは!もうすぐ3年目を迎える受託系企業で働くガッキーです。
2年目のうちに知っておかなきゃいけない知識とか実装とか焦りながら考えていたら、
まず思い浮かんだことがセキュリティだったので書いてみました!# なぜセキュリティを守らなければならないのか!?
そもそもなぜセキュリティを確保しなければならないのか?
– 第三者への情報漏洩
– 情報の改ざん
– 第三者による不正な利用これらを確保せずアプリケーションを確保すれば、
利用者への被害が拡大しアプリの信頼が失われ、会社経営への影響が出てきてしまうのです。さっそく押さえておきたいセキュリティを見ていきましょう!
# 1.SQLインジェクション
:::note info
SQLインジェクションとは?入力フォームにSQL文を入力し送信することでデーターベースの改ざんや取得がされてしまうものです。
:::不正なselect・delete・update文を入力することで、
そこから個人情報が流失し、ユーザー情報が改ざんされ様々な問題に発展します。例えば、ログイン画面のID・PWフォームに以下のような値を
laravelでthe stream or file /var/www/html/storage/logs/laravel.logエラーが出たときの対処
# docker環境でローカルホストを開いたときに`the stream or file /var/www/html/storage/logs/laravel.log`(以下略)というエラーが表示された
# エラーの意味
大まかな意味としてはlaravel上でログファイルへの書き込みが失敗していますよ〜という意味らしい。# 考えられる原因
・**パーミッションの問題**:ログファイルのパーミッションが正しく設定されていない。Webサーバーのユーザー(例えば、ApacheやNginxなど)が書き込み権限を持つ必要がある
・**ログファイルが存在しない**:そもそもログファイルが存在していない場合。
上記の2点が原因として考えられると思いますが今回はエラーメッセージに`permission denied`と表示されていたのでパーミッションの問題かと考えられます。ログファイルも(storage/logs)にしっかりと存在していました。
# 対処法
### 1.ターミナル(プロジェクト直下)で`sudo chmod o+w ./storage/ -R`を入力
### 2.続け
【Laravel】Illuminateにあるメソッド Auth編
## はじめに
Laravelでよくでてくる“Illuminate\~\~“って結局何だ?!と思いメソッドをまとめました。### 言語
– Laravel8## Illuminateとは
– Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
– サービスやコンポーネントは“Illuminate“名前空間内に整理されている### どこにあるか?
**“プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~“**## Illuminate\Auth
– 認証システムを管理するためのクラスがある。## Illuminate\Auth\AuthManager
– “AuthManager“クラスは認証の設定とドライバの管理を行う
### “guard($name = null)“
– 指定した認証の方法を取得する
“`Laravel
$user = Auth::guard(‘admin’)->user();“
“`##
【PHP】2024年のPHP開発者を支える中心人物たちを勝手に紹介するよ
PHPの隆盛を支えてきた開発者は非常にたくさん存在しますが、その中でも最近のPHPを支えている中心の有力者たちを紹介します。
選択の基準ですが、[PHP Foundation](https://thephp.foundation/)の[Structure](https://thephp.foundation/structure/)に載っている人です。
他にも紹介したい人はたくさんいるのですが、きりがないですし、そもそも私はPHP言語開発者たちやコミュニティと一切関わりのない全く無関係な人間なので勝手に選抜するのもなんだかなあということでやめておきます。# PHP Foundationとは
まずPHP Foundationって何なのかという話ですが、ここ数年PHP言語の発展を支えている団体です。
実は長らくの間PHP言語は、言語自体を支えている団体がおらず、ボランティアの個人が集まって開発が進められていました。
これは言語としてはかなり特異な状態であって、たとえばPHPと同列に語られがちなLLを見てみると、Rubyには[Ruby Association](https://ww
PHPでSSL関連のエラーでハマった件
CentOS7からUbuntu24.04にサーバーを入れ替えたところ、以下のエラーで悩んだ!
`Warning: getimagesize(): SSL operation failed with code 1. OpenSSL Error messages:
error:0A000086:SSL routines::certificate verify failed in ・・・/tcpdf_images.php on line 166`php.iniの[openssl]セクションに
`openssl.cafile=/etc/ssl/certs/SectigoRSADomainValidationSecureServerCA.crt`を追加してもダメ
`/usr/lib/ssl/openssl.cnf`にlegacy_sect追加してもダメ散々ググって、やっと[これ](https://serverfault.com/questions/1118578/ubuntu-cannot-verify-sectigo-certificate)見つけて解決
`# cp /et
【Laravel】抽象メソッドとは
## 抽象メソッドとは
抽象クラスの中で定義されるメソッド。
抽象クラスは、他のクラスに継承されることを前提としている。
子クラスは必ず抽象メソッドを実装しなければならないため、特定のメソッドが常に存在することを保証できる。`abstract`は「このメソッドは抽象メソッドである」という意味。
具体的なロジックはこの抽象メソッドを実装するサブクラスに委ねられる。
“`php
abstract class Animal {
//抽象メソッドを定義
abstract public function makeSound();
}class Dog extends Animal {
public function makeSound() {
return ‘Bark’;
}
}
“`## 使う場面
– 共通のインターフェースを強制し、子クラスが必ず特定のメソッドを実装する必要がある
– 共通の基本機能を持ち、それを派生クラスで具体的に実装する必要がある
php8+phalcon5+nginx+windows10 環境構築メモ
初見のphalcon環境構築時に少々手こずったので備忘として残します。
まずphalconの情報が思いのほか少なかった(シェアがそこまでないからかも)
私自身の経験不足が原因と捉えていますが、似たようなエラーに苦戦中の方の救いになればと思います。
#### 本件に関係しそうな環境諸々は以下の通り
– php 8.1.8
– phalcon/devtools 5.0.x-dev
– nginx 1.27
– mysql 5.7
– windows10
– docker desktop 4.31.1
– git for windows 2.43.0
#### docker インストール
“`
$ docker-compose -f .docker/docker-compose.yml up -d –build
$ docker exec -it xxxxx bash
$ composer install
“`
※必要最低限のみ記載するので適宜変更してください。
#### phalconインストールで問題発生
Dockerfileは以下の通り(ChatGPTに聞けば出てくるような内容な
初めての個人開発
## 概要
このプロジェクトは、タスク管理と生産性向上を目的としたウェブアプリケーションです。ユーザーは、タスクの作成・管理ができ、ポモドーロタイマーを使用して作業時間と休憩時間を効果的に管理することができます。ログインすることで、タスクや設定の情報を長期的に保持でき、統計情報の取得もできます。ログインせずに、ゲストユーザーとしても使用できます。また、Youtubeのプレイヤーが埋め込まれており、お気に入りの再生リストを再生することが可能です。## 背景
私の友人は休日に個人開発を行っています。一人で作業する環境では作業と休憩が曖昧になりがちです。作業の途中で他のことに目移りしてしまったり、休憩の時間が長引いてしまったりと集中力の維持が難しくあります。特に作業中でも休憩中でも、動画を流し好きな音楽を聞いていたりすると途中で動画サイトが気になりいつの間にか動画を見続けてしまうこともあります。 私も現在一人での学習時間が多いため、共感できる部分が多くありました。そのため、これらの問題を解決することで効率よく作業を進められるようにしたいと思ったからです。## 要件
* タスク管理機能
配列同士の共通部分を見つける
## array_intersect()
– 配列の共通部分を見つけるために使用される
– 複数の配列を渡すことで、それらの配列全てに共通する要素を抽出できる
– 結果の配列のキーは、最初の配列のキーを保持する### 使用例
“`php
// 配列を定義
$array1 = array(“a” => “green”, “b” => “brown”, “c” => “blue”, “0” => “red”);
$array2 = array(“a” => “green”, “0” => “yellow”, “1” => “red”);// 共通する値を持つ要素を取得
$result = array_intersect($array1, $array2);// 結果を出力
print_r($result);“`
### 出力
“`php
Array
(
[a] => green
[0] => red
)
“`## array_intersect_key()
– 2つ以上の配列のキーに基づいて交差(共通するキーの要素)を返す
– 最初の
【Laravel】CSVファイルの中身にバリデーション(maatwebsite/excel)
以前にCSVファイルをインポートする記事を書きましたが、今回はCSVファイルの中身にバリデーションチェックをかける方法について書きたいと思います。
前回のCSVファイルインポートの記事はこちらです。
https://qiita.com/programmer502/items/1c624d494392d2e37083
## やりたいこと
前回と同様に、下記のようなCSVデータをアップロードします。
“`
企業名,郵便番号,住所,電話番号,代表者名,担当者名,備考
テスト02株式会社,2203456,埼玉県上尾市井戸木,090-4736-0924,佐藤,中島,テストです
“`– 備考以外はすべて必須項目
– 企業名は一意な値としたい## Importクラスの作成
– インターフェイスにwithValidationを追加(useで読み込みを忘れずに)
– rulesメソッドでバリデーションのルールを設定
– customValidationMessagesメソッドでメッセージをカスタマイズする以上を反映させたコードが下記です。
app/Imports/Compa
【PHP】PHP7.4から8.1にバージョンアップしてみた
## はじめに
プロジェクトのPHPのバージョンを7.4から8.1にバージョンアップする作業を行いました。
今回のバージョンアップ作業で学んだ手順や考慮するべき点についてまとめていきたいと思います。
## この記事でやること
PHP7.4から8.1にバージョンアップする。
## 環境
– EC2を利用しています
– OSイメージ:Amazon Linux 2 Kernel 5.10
– PHPのバージョン: PHP 7.4.33 (cli)
– PHPUnitのバージョン: 9.5.28
– CakePHPのバージョン: 4.2.12
– nginx: nginx/1.22.0
– php-fpm: PHP 7.4.33 (fpm-fcgi)## 事前調査・準備
### バージョンアップに関する情報を集める
#### PHP
PHPの各バージョンはリリースから3年間サポートされます(2年間のアクティブサポート+セキュリティサポート1年)が、PHP7.4はセキュリティサポートが2022年11月28日で終了しているため、今後の保守を考えてPHP8.1へのバージョ
【PHP】Enumでの検証を簡単にする
## PHPのEnumでの検証
以下のようなEnumがあるとしたとき
“`php
enum Test: string
{
case Test1 = ‘test1’;
case Test2 = ‘test2’;
case Test3 = ‘test3’;
}
“`
検証の際いちいち
“`php
if ($test === Test::Test1) {}
“`
みたいなことを書くと可読性が悪くなる気がしたので以下のようなトレイトを用意して
“`php
trait EnumIsTrait {
public static function tryFromName(string $name)
{
foreach (self::cases() as $case) {
if ($case->name === $name) {
return $case;
}
}
return null;
}p
【PHP】Fizz Buzz (paizaランク C 相当)をやってみた
https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz
以下に、与えられた問題に基づくPHPプログラムを作成しました。このプログラムは、1からNまでの整数を順に表示し、条件に応じて特定の文字列を表示します。
“`php
【PHP】正規表現でハッシュタグを抽出したい
### 環境
“`
$ php -v
PHP 8.3.8 (cli) (built: Jun 4 2024 14:53:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.8, Copyright (c) Zend Technologies
with Zend OPcache v8.3.8, Copyright (c), by Zend Technologies$ php artisan –version
Laravel Framework 11.10.0
“`### 困ったこと
趣味で開発しているアプリでハッシュタグを扱いたい!となり、文章から正規表現でハッシュタグを抽出する処理を実装するにあたりたくさんのサイトを参考にさせていただきました。例えばこんな感じ。
“`php
$value = ‘#思い出 この本は図書館で大人気でした。 #ウォーリーを探せ ’;
$matches = [];
preg_match_all(
‘/(?<=\s|^)#\S+/', $value,