- 1. 【PaizaC⇒Bレベルアップ問題集】構造体の作成
- 2. composer requireとcomposer global requireの違い
- 3. 【簡単】Railsでの画像アップロードと表示機能の追加方法
- 4. PHP学習記録
- 5. MVCモデルについて
- 6. PHPの新機能Fiber(Fibers)を使ってみる
- 7. Laravel8+PHP7.4のプロジェクトを構築
- 8. routeの分割について
- 9. Docker PHP:8.1 ImageMagick で PDFを画像に変換
- 10. [PHP] 「Fatal error: Class ‘…’ not found」に陥ったときのチェック項目
- 11. Livewireでバイディングされる値が表示されない時の解決法
- 12. rockylinux8.8のコンテナイメージでapache2.4+PHP7.4でサンプルページを表示させるまで
- 13. 手っ取り早くVSCodeでPHPファイルをブラウザ実行
- 14. Livewire3にアップグレードすると、ページネーションのクリック後のスクロール動作を指定できる
- 15. 【画像処理ソフト】ImageMagickとImagickインストールに関する備忘録的な何か
- 16. GitHub Copilot と一緒にPHPでガチャAPIを作ってみた!
- 17. [Laravel] シングルアクションコントローラで責務を分割する
- 18. PHPでよく起こるエラーと対処方法
- 19. 数値、文字及び文字列リテラルなしでHello Worldを出力する
- 20. 【PHP・Laravel・Rails】これまで学んだフレームワーク・言語でのsessionの使い方振り返ってみた
【PaizaC⇒Bレベルアップ問題集】構造体の作成
結構書くのが久しぶりだが、今までクラウド資格の勉強に費やしてきたので
(おかげでGCPとAWSのアシスタント資格は全取得できた)
コードを書く練習を再開しようと考えた。
出始めに、PaizaのphpのBランクのスキルチェックがとんと検討がつかないレベルで敗北したので、レベルアップ問題集をつかってスキルアップを目指す。スキルチェックテストはだめだが、レベルアップ問題集についてはコードを公開したりしても大丈夫らしいので、Qiitaを使って問題演習をやってみることにした
—
今回の問題はこれ
https://paiza.jp/works/mondai/class_primer/class_primer__make//問題
N
n_1 o_1 b_1 s_1
…
n_N o_N b_N s_N・ 1 行目では、paiza君のクラスの人数 N
・ 続く N 行のうち i 行目 (1 ≦ i ≦ N) では、 i 番の生徒の名前・年齢・誕生日・出身地を表す整数・文字列 n_i ,o_i ,b_i , s_i が順に半角スペース区切りで与えられます。構造体・・・って聞い
composer requireとcomposer global requireの違い
composer requireとcomposer global requireはどちらもcomposerを使いPHPパッケージをインストールするコマンドだが、以下の違いがある。
### composer require <パッケージ名>
あるWEBアプリのプロジェクトを作成する場合など、なんらかのプロジェクト単位でパッケージを管理したい場合に使用するコマンド。例えばあるWEBアプリのプロジェクト専用のパッケージを管理したい場合を考える。
プロジェクトの最上位のディレクトリでパッケージを管理したいとして、その最上位のディレクトリへ移動し、composer require <パッケージ名>を実行する。
コマンド実行したカレントディレクトリにvendorディレクトリが作成され、その中にパッケージが格納される。
このvendorディレクトリでプロジェクト専用のパッケージを管理する。
### composer global require <パッケージ名>
プロジェクト単位で管理したいパッケージ
【簡単】Railsでの画像アップロードと表示機能の追加方法
# 【簡単】Railsでの画像アップロードと表示機能の追加方法
このガイドでは、ImageMagick、MiniMagick、Image Processing、およびActive Storageを使用して、Railsアプリケーションで画像のアップロードと表示を実現する手順を説明します。
## 1. ImageMagickのインストール
まず、ImageMagickをインストールしましょう。ImageMagickは画像の処理と変換に必要です。Homebrewを使用してインストールできます。
“`bash
brew install imagemagick
“`## 2. MiniMagickとImage Processingのセットアップ
次に、MiniMagickおよびImage ProcessingのGemをプロジェクトに追加しましょう。Gemfileに以下の行を追加します。
“`ruby
gem ‘mini_magick’
gem ‘image_processing’
“`その後、ターミナルで以下のコマンドを実行して、Gemをインストールします。
“`
PHP学習記録
## 目的
・PHP7技術者認定初級試験の合格を目指す。## 参考教材
初めてのPHP(PHP7対応版)
開発環境についての記載がないので手探りで構築してみる。## 環境
・Ubuntu 22.04LTS wsl2
・Docker
・php:7.4.33-zts-alpine3.16### Docker
php公式のイメージを使用する。
https://hub.docker.com/_/phpとりあえずpullしてみる。
“`
$ docker pull php:7.4.33-zts-alpine3.16
$ docker run -it php:7.4.33-zts-alpine3.16
Interactive shellphp > echo ‘Hellow World’;
echo ‘Hellow World’;
Hellow World
“`
phpのコードは実行できた。
pullしたimageは一旦削除。Dockerfile作成
“`
FROM php:7.4.33-zts-alpine3.16
COPY . /usr/src/myapp
WORK
MVCモデルについて
## はじめに
今回「MVCモデル」を取り上げたのは、Vue+Laravelに関わり勉強することとなったためです。まず初学者ののためMVCについて問われましたが、全く理解わかりませんでした。調べたことをまとめたいと思います。なお、ソースコードを追いながら学習したため、この記事にはソースコードはありません。## MVCモデルとは
プログラムを役割ごとにModel(モデル)・View(ビュー)・Controller(コントローラー)の3つの機能に分けて管理するソフトウェア設計モデルのこと。MVCは、アプリケーションフレームワークでよく使われているアーキテクチャです。
`MVCは、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。 アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。Model、View、Controller。
`(Wikipedia)### Model
データ処理全般を担当します。
– データベースとデータのやりとり
PHPの新機能Fiber(Fibers)を使ってみる
# 突然ですがPHPのFiber/Fibersってご存知でしょうか?
言うまでもなくPHPというプログラムは、基本的に上から下に向かって記述された順に処理が行われます。
途中で下から上に戻ることや、条件式に従って途中でループを離脱することはありますが、その動作は同期的であって、何らかの応答を待つ場合はその場でプログラムは待機します。
つまり概ねシングルスレッドで逐次処理なわけです。
当たり前ですが、ここで **ごっつ重たい処理(自分の場合は画像変換)を走らせると非常に遅い** です。
それでいてPHPが動作するサーバーのCPUリソースは余っています。
(ここまではPHP初心者がある程度PHPを書けるようになった時の感想です)
さて、PHPは古い言語なので、この同期的でシングルスレッドなプログラムを非同期的に動かす知見がインターネットの各所に転がっています。
代表的なのは **「バッチ処理をexecでバックグラウンドに投げる」** だと思います。
しかしこの方法だとバックグラウンドに投げられた処理の終了をPHP側から知るには、投げられた処理の方でログなりデータベースなりにその旨を記録して
Laravel8+PHP7.4のプロジェクトを構築
# 課題
PHP7.4も終了しましたが、まだまだ、動いている環境があり、そこに追加したいサービスがあるため、環境構築を行った。
ほとんど、[今更Laravel8+PHP7.4のプロジェクトを構築する](https://zenn.dev/kij/articles/7e6697e6c046bf)を参考にしていますが、
Nodejsのバージョンでsailがビルドできなくなってしまった!
# TL;DR
作成された、“`docker-compose.yml“`ファイルで、“`laravel.test“`の“`build“`の“`args“`に“`NODE_VERSION“`を追加する
“`docker-compose.yml
# For more information: https://laravel.com/docs/sail
version: ‘3’
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/7.4
routeの分割について
## 前置き
初学者です。
調べながらコードを書くことが大半な自分ですが、「理解も大切だけど手を動かして指に覚えこませることも重要」と考えているので、2、3分で確認しきれることを念頭に書いています。
執筆する時もスピード重視なので、かなり崩して書いています。
知識も虫食い状に習得していると自覚しているので、それおかしいぞという部分があれば、ご指摘いただけますと幸いです。## routeファイルの分割
routeを一つのファイルにまとめる→routeがいっぱいになって可読性が最悪
⇒じゃあrouteをわかりやすい名前のファイルでわけて、すっきりさせちゃえばいいじゃない
\\\ routeファイルの分割 //## やり方
①
`app/routes`配下にファイルを作る。
routeファイルを作るコードは知らんので手作業でえっちらおっちら
routeファイルにcontrollerファイルをuse。※webとapiでファイルをわけること。
ファイルは名前を見ただけで何をやってるのかどういった役割を持っているのかわかるようにしよう。例)
“` php
// ここはapp/
Docker PHP:8.1 ImageMagick で PDFを画像に変換
# やろうとしていること
・Docker環境内にImageMagickをインストール
・PHP(Laravel)でPDFを画像に変換# 環境情報
PHP:8.1
Laravel:10.22.0# Dockerfileへの記述
Docker環境内にimagemagickをインストール
phpのモジュールにImagickを追加“`Dockerfile
RUN apt-get update \
&& apt-get install -y \
libmagickwand-dev imagemagick \
&& pecl install imagick \
&& docker-php-ext-enable imagick
“`# Dockerの起動し直し
“`terminal
// 起動しているコンテナを停止
docker-compose stop// 過去のコンテナを削除
docker rm docker ps -a -q// dockerイメージの一覧表示
docker images// 削除するイメージを選んで削除
docker rmi 【IMAGE
[PHP] 「Fatal error: Class ‘…’ not found」に陥ったときのチェック項目
さっきまで快適に作業してたのに、ちょっとファイルいじったら Class not found になったんです!
というときの対処方法です。
# 基本のチェック
まずは以下の記事からの抜粋です。
https://qiita.com/suin/items/752f3721c4b9084fef4e
## vendor/autoload.phpをrequireしているか?
「さっきまで動いてたんです :joy:」 → 該当せず
## composer.jsonにautoloadの定義を忘れていないか?
「さっきまで動いてたんです :joy:」 → 該当せず
## vendor/composer/autoload_*.phpの内容が最新になっているか?
以下のコマンドを実行……
“`console
$ composer dump-autoload
“`……解決せず
## スペルミスは無いか?
「クラス名変えてません :joy:」 → 該当せず
## いま作業しているディレクトリは実行環境のものか?
「さすがに大丈夫っす :joy:」 → 該当せず
# さら
Livewireでバイディングされる値が表示されない時の解決法
# 【結論】値が表示されないのはバリデーションの設定がないから
毎回かどうかわからないが、フォームコンポーネントを作っていて、前にもこんなんあったなとなったやつ。
以下のように、wire:modelの指定は間違いないし、`dd()`や`dump()`を使って値がきちんと渡ってきているところまで確認ができているのにテキストボックスの初期値が表示されない。
“`
@error(‘model.name’)rockylinux8.8のコンテナイメージでapache2.4+PHP7.4でサンプルページを表示させるまで
## コンテナ起動~apache導入まで
### イメージの取得
“`docker
docker pull rockylinux:8.8
“`### コンテナの起動およびbashで接続
“`docker
docker run -dit -p 80:80 –name rocky rockylinux:8.8
docker exec -it rocky /bin/bash
“`### パッケージの更新
“`bash
dnf -y upgrade
“`### apache/PHPのインストール
“`bash
dnf -y module install httpd
dnf -y module install php:7.4
“`### ssl.confのリネーム
そのままapacheを起動しようとするとSSL関連ファイルが無いと怒られる。
“`
[root@95c8a58dc340 /]# httpd -k start
AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCe手っ取り早くVSCodeでPHPファイルをブラウザ実行
# 準備
この手順は1回だけ行います。ファイルを実行しようとする際に毎回行うものではありません。
1. [PHP Extension Pack](https://marketplace.visualstudio.com/items?itemName=xdebug.php-pack)をインストールします。
1. VSCodeでphpファイルが入った**フォルダ**を開きます。このとき、ファイルではなくワークスペースとして開きます。
1. サイドパネルから**実行とデバック**タブを開き、`launch.jsonファイルを作成します`を押します。
1. PHPを選択します。
1. 以下の内容で`launch.json`を保存します。“`json
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “Launch Built-in web server”,
“type”: “php”,
“request”: “launch”,Livewire3にアップグレードすると、ページネーションのクリック後のスクロール動作を指定できる
# Livewire3でそのままページャーを実装するとTOPにスクロールされてしまう
[前回記事](https://qiita.com/limtae/items/c5ea2ad6e48ba0baa62b “Livewire3.0にアップグレードするとモデルのプロパティを直接バインドできない件”)でも書いたが、Livewire3にアップグレードする際は色々と落とし穴が多いので、しっかりアップグレードガイドを読んでおいた方がいい。今回遭遇したのは、ページネーションのボタンをクリックするとページTOPにスクロールされてしまう現象。これは、実際のページネーションのテンプレートを見ると一目瞭然。
“`
@php
if (! isset($scrollTo)) {
$scrollTo = ‘body’;
}$scrollIntoViewJsSnippet = ($scrollTo !== false)
? <<【画像処理ソフト】ImageMagickとImagickインストールに関する備忘録的な何か
こんにちは。
一日一回OOM killer システムソリューション部のかわです。先日LinuxマシンにImageMagickをインストールすることがあったんですが、
初見というのもあってこれがなかなか苦労しました。まず情報があんまり落ちてない。
落ちててもOSが違ったりバージョンが古かったり方法が全く違ったり。
パッケージ依存関係でエラーが出るたびに縺�o縺ゅ≠縺ゅ≠縺ゅ≠縺ゅ≠これは、AlmaLinux8環境でうまくいった際の備忘録である。後世の誰かの役に立ちますように
▼ブログの詳細はコチラ▼
***
■ 株式会社ビヨンド
・コーポレートサイト:https://beyondjapan.com
・採用サイト:https://recruit.beyondjapan.com
・Youtube(びよまるチャンネル):https://www.youtube.com/@beyomaruch
・X(Twitter):https://twitter.com/beyondjapaGitHub Copilot と一緒にPHPでガチャAPIを作ってみた!
初めまして。
記事を開いていただきありがとうございます。
システム開発部のしんたです。
ここしばらく ChatGPT などのAI技術の発展がすさまじく面白い時代になってきましたね。
そんな大AI時代に取り残されないために、今回は GitHub Copilot を使ってコーディングを行ってみました!
▼ブログの詳細はコチラ▼
***
■ 株式会社ビヨンド
・コーポレートサイト:https://beyondjapan.com
・採用サイト:https://recruit.beyondjapan.com
・Youtube(びよまるチャンネル):https://www.youtube.com/@beyomaruch
・X(Twitter):https://twitter.com/beyondjapaninfo
・Instagram:https://www.instagram.com/beyondjapan_24365・クラウド予約システム EDISONE(エジソン
[Laravel] シングルアクションコントローラで責務を分割する
# 導入
Laravelでルートに関する処理を記述する場合、以下のように操作する対象のオブジェクト毎にコントローラクラスを生成し、ルート毎にメソッドを作るのが一般的かと思います。
“`php
namespace App\Http\Controllers;use App\Models\User;
use Illuminate\View\View;class UserController extends Controller
{
/**
* Show the profile for a given user.
*/
public function show(string $id): View
{
return view(‘user.profile’, [
‘user’ => User::findOrFail($id)
]);
}
}
“`ルート定義は以下のようになります。
“`php
use App\Http\Controllers\UserControlPHPでよく起こるエラーと対処方法
プログラムを書いていると必ず出会うのがエラーです。
エラーはちゃんとログを読めば、何が原因でエラーが起きているか分かるので怖いものではないです。
(ただ、初心者の頃はエラーが出ると、分からなくて困っていた記憶があります)このあたり慣れると感覚でできますが、慣れるまでは難しいと思ってしまうところです。
**なので、日本語ベースでだいたい「どういうエラーが起きるのか?」を知っておくと、解決するのが早くなります。**前提として、どんなエラーが起きているか分かっているのと、分からないのとでは、全く違いますからね。
(これはプログラミング以外のことでも同様です)## PHPでよく起こるエラーと対処方法
### 文法的に書き方が間違っている
初心者にあるあるなエラーですが、ネストが深くて分からなくなってしまうケースもあります。
**基本的に、始めたら閉じるのがプログラミング言語の書き方では重要です。**
({}とか()とか””とか;とか)あとは、変数の宣言やコードの途中に全角で文字が入ってしまっているケースですかね。
スペースが全角になっていると見つけるのが大変なので、VSCo数値、文字及び文字列リテラルなしでHello Worldを出力する
出題当時に盛り上がっていたのを思い出しました
改めて回答してみました# 問題文
https://github.com/cielavenir/codeiq_problems/blob/master/q431/editorial.md
> 標準出力に Hello World と出力するプログラムを作成して下さい。
>
> ただし、数値、文字及び文字列リテラルを解答に含めることはできません。 Perlのqqやqw、Rubyの%Q、%q、%wなども避けたほうが評価が高くなります。 言語仕様をフル活用して下さい!ご自身で考えてみる方向けに、解答例の記述までにいくらか行を空けておきます
…
よろしいですか
# 解答例1
“`php
【PHP・Laravel・Rails】これまで学んだフレームワーク・言語でのsessionの使い方振り返ってみた
# 概要
この記事では私がこれまで学習してきたPHP、Laravel、Ruby on Railsでのsessionの使い方について紹介していきたいと思います。
# 対象とする読者
– 様々なフレームワークや言語でのsessionの使い方の違いについて知りたい方
– PHP、Laravel、Ruby on Railsでのセッションの基本から詳細な使い方を学びたい方
– 初学者の方
# PHP
以下がPHPでのsessionを使う際のサンプルコードです。
“`php
session_start();//sessionのスタート
if (!isset($_SESSION[‘count’])) {
$_SESSION[‘count’] = 0;
} else {
$_SESSION[‘count’]++;
}
“`
`session_start()`関数でセッションのスタートをします。
セッションを開始すると、PHP はスーパーグローバル`$_SESSION`にすべてのセッションデータを格納します。
通常は、PHP がスクリプトの処理を終了するときに、セッションは自動的に終了します関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた