- 1. 【未経験・転職目指し組】Laravelでポートフォリオを作成しました。
- 2. PHPのバージョン切り替え【※phpenv未使用】
- 3. PHPで先月の1日を出力する方法
- 4. phpでhello world出力方法、2パターンの連想配列
- 5. 【 #ゆめみからの挑戦状 ★第5弾】に回答してみました
- 6. Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
- 7. 【背伸び初心者授業①】if文は横一列
- 8. ブラックジャックの開発に時間をかけてみたら、報酬として開発スキルがレベルアップした。
- 9. PHP基礎
- 10. 予約時刻表DEMO版を作りましたのでお裾分け
- 11. Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
- 12. mb_strlen()の文字列の長さは文字エンコーディングによって可変するという話
- 13. 【PHP基礎】foreachで注文票を作ってみましょう!
- 14. WordPressで少し高度な検索をする
- 15. 「ログってなによ」Laravel
- 16. pickle install redisでシリアライザとしてigbinaryを有効にする方法
- 17. 【 #ゆめみからの挑戦状 ★第5弾】解答の紹介と総括
- 18. Wikiレンタルサービスをつくってみた
- 19. Docker上でLaravelのプロジェクトを作成するまで 後半
- 20. 世にも奇妙なPHPセッションの話
【未経験・転職目指し組】Laravelでポートフォリオを作成しました。
## はじめに
プログラミング歴7ヶ月(某プログラミングスクールで学習)の実務未経験者がLaravel(PHP)等でポートフォリオを制作しましたので紹介していきたいと思います!(作成期間1ヶ月強)
今後もアップデートしていくのでフィードバックなど頂けますと嬉しいです。### 作者のスペック
年齢は29歳で、今までにプログラミング経験は全くありませんでした。
何か誇れるスキルを身につけたいと思いプログラミングに挑戦する決意を固めました!
地元の町役場で公務員として勤めながら、スクールでプログラミングを学習しました。現在は公務員を退職し、エンジニアとして働くために転職活動中です!
よろしくお願い致します。## アプリの概要
今回、制作したアプリケーションがこちら。https://gohanoyatsu.herokuapp.com/home
『Gohan.Oyatsu』は、和歌山県内の素敵な飲食店をもっと世の中に広めたい、盛り上げたいという思いから作成したアプリケーションです。
簡単にいうと、参加型の飲食店掲載アプリとなっています。
スマホやタブレット用にレイアウトを作
PHPのバージョン切り替え【※phpenv未使用】
![WP-eye-catch(1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/993e7408-9751-9594-43f0-6cf9ad74151e.png)
### はじめに
PHP(Laravel)で自分の環境と開発環境のバージョンが違うのが原因で、本番環境でデプロイする際にエラーが出てしまい、原因解明に時間がかかってしまいました。
そこで今回はターミナルだけでPHPのバージョンを変更できる方法をご紹介します。
### 下準備
①ターミナルを立ち上げ以下のコマンドを打つ
“`
php -v
“`
こんな風に返ってきます。PHPのバージョンは7.4です。
“`
PHP 7.4.30 (cli) (built: Jun 9 2022 09:31:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.
PHPで先月の1日を出力する方法
## この記事を作成しようと思った理由
バッチ処理で月初に先月の1日から末日までの集計データを出力する必要があり下記のコードを見たが、これがどういう風な処理をしているのか理解できていなかったので、今回まとめることにしました。“`
# 今回理解したいコード
$start_date = date(“Y/m/01 00:00:00″, strtotime(date(‘Y/m/01’) . ” – 1 day”));
“`## 処理についての説明
前提として今日の日付を「2022年9月15日」として話をしていきます。
まず、この処理で行っていることを分解していきます。ここで行われている処理について説明します。
“`
strtotime(date(‘Y/m/01’) . ” – 1 day”)
“`
この処理は、今日の日付(2022年9月15日)から−1日しているという処理になります。
Y(今日の日付の年)、m(今日の日付の月)、d(今日の日付の日)となるので、
echo date(“Y/m/d” strtotime(date(‘Y/m/d’) . “
phpでhello world出力方法、2パターンの連想配列
基本知識
“`javascript
“`
PHPで連想配列、その1
“`javascript“ST”,
“age” => 20,
“home” => “kagawa”
];echo “
"; print_r($person3); echo "“;
//その②
$person4 = [];
$person4[“name”] = “TY”;
$person4[“age”] = 30;
$person4[“home”] = “tokyo”;echo “
"; print_r($person4); echo "“;
?>
“`
PHPで連想配列、その2
“`javascript
//その①
let person5 = {
name: “太郎”,
age: 26,
【 #ゆめみからの挑戦状 ★第5弾】に回答してみました
こちらで開催されていた【ゆめみからの挑戦状 第5弾】に、私もいくつか回答してみました。
【 #ゆめみからの挑戦状 ★第5弾】
シリーズ初の PHP 問題です?✨【お題】
以下のぐちゃぐちゃな配列を期待されている形に整形して出力してください【回答方法】https://t.co/rZguz6aKJX またはソースコードのスクリーンショットを引用 RT
【結果発表】
9/15(木)【出題者】
まっぴー @mpyw pic.twitter.com/GSpE5Tekmp— 株式会社ゆめみ | YUMEMI (@yumemiinc) September 8, 2022
出題者は@mpywさんで、今回の出題内容は
“`php
$in = [
[‘2nd’ => ‘two’, ‘four’ => ‘4th’],
‘three’ => ‘3rd’,
[‘one’ => ‘1st’],
’10th’ => ‘ten’,
[‘6th’ => ‘six’],
‘5th’ => ‘five’,
‘seven’ => ‘7th’,
[‘fourteen’ => ’14th’, ’11th’ => ‘eleven’],
[‘8th’ => ‘eight’],
‘thirteen’ => ’13th’,
’12th’ => ‘twelve’,
‘nine’ => ‘9th’,
[’15th’ => ‘fifteen’],
];
“`という、キーと値の関係も配
Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
Python,Ruby,PHP,Java,JavaScript,Perlのファイル・ディレクトリ操作の比較
# Python
https://qiita.com/supersaiakujin/items/12451cd2b8315fe7d054
# Ruby
https://qiita.com/prgseek/items/38f74d99b74baa3b42f7
# PHP
https://qiita.com/daichi87gi/items/111cd922991e4a18d1ef
# Java
https://qiita.com/suema0331/items/03330a663773204afc5f
# JavaScript
https://qiita.com/turmericN/items/28e8bc8fca07285ddffc
# Perl
https://perlz
【背伸び初心者授業①】if文は横一列
背伸びしている初心者になろう!
本日はビックマックのようなif文をレタスだけにしていきます!“`
本日の内容①if文を1行に。
本日の内容②少し複雑なif文も1行に。
“`
それではやっていきましょう!## ① if文を1行に。
皆さんif文をどうやって書いていますか?
“` php:php
if($name == ‘木久扇’) {
return ‘黄色’;
} else {
return ‘黄色じゃない’;
}
“`
もし名前が「木久扇」だったら「黄色」を出力して、それ以外の名前だったら「黄色じゃない」と出力するようにしました。このコードを1行で書くと…
“`php:php
$result = ($name == ‘木久扇’)? ‘黄色’ : ‘黄色じゃない’;
return $result;
“`
2行になりましたね。でもこれでほぼ1行になりました!
これは世にいう`三項演算子`ですが、名前は覚えなくても生きていける気がします。
(私も先ほど調べました。)## ② 少し複雑なif文も1行に。
なんだかいろんな条件で分けない
ブラックジャックの開発に時間をかけてみたら、報酬として開発スキルがレベルアップした。
# ♣︎. はじめに
コンソール画面で操作するブラックジャックゲームを、PHPで作りました。その個人開発の過程を記事にします。
操作した時のコンソール画面はこんな感じです。
![タイトルなし.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527226/8a00bf37-8060-b3b8-e124-080b427009ba.gif)
(テキストだとこんな感じです)
“`
root@9444efa94780:/var/www/html# php Main.php
ブラックジャックの設定をします。
プレイヤーの人数を入力してください。(1〜3)
? 1
プレイヤー1名でゲームを開始します。あなたの持っているチップは100ドルです。
ベットする額を入力してください。(1〜1000ドル)
? 10
10ドルをベットしました。ブラックジャックを開始します。
あなたの引いたカードはハートの6です。
あなたの引いたカードはスペーPHP基礎
### PHPとは
HTMLやCSSといったマークアップ言語(クライアントサイド言語)ではなく、スクリプト言語(比較的単純なプログラムを記述するための、簡易的なプログラミング言語全般)の一種。
クライアントに見える範囲で動くものではなく、サーバー側でHTTPリクエストを受け取ったappacheの依頼に応じて、データを取り出したり、データを書き込んだり、状況によってhtmlを自動で作り出すなど動的なウェブページを作成したりすることが可能。
“`
/*で閉じる。php部分については省略可能*/
そのまま出力される
‘;
echo ‘Hello Word’;
/*出力はechoを使用する。また改行は’
‘を使う。rubyではのため注予約時刻表DEMO版を作りましたのでお裾分け
# 予約時刻表DEMO版を作りましたのでお裾分けを致します。
尚、予約確認画面などは御自身で制作くださいませ。
あくまでも雛形でありDEMO版ですので、誤動作などのバグが残っている可能性があります。
また、ソースコードにはあまりコメントが無いですがソースを追って頂けたらと思います。どうぞ宜しくお願い致します?。
“`txt
肝心の確認部分は記載していないのには訳があります。営業妨害になっては駄目だからです。そういう理由で確認部分以降は書いていません。
“`https://github.com/taoka-toshiaki/reserve_demo1
“`php:index.php
Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
Python,Ruby,PHP,Java,JavaScript,Perlの文字列連結の比較
# Python
https://qiita.com/masa2223/items/cf3c4cc104e90d3c40d3
# Ruby
https://qiita.com/Kta-M/items/c7c2fb0b61b11d3a2c48
# PHP
https://qiita.com/horikeso/items/01463f5e17985428055c
# Java
https://qiita.com/supercell1023koeda/items/a548f2bdd811168e7c44
# JavaScript
https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b
# Perl
https://perlzemi.com/bl
mb_strlen()の文字列の長さは文字エンコーディングによって可変するという話
## 概要
**strlen()** は文字列の長さをバイト数で返し、
**mb_strlen()** は文字列の長さを取得するとよく書かれるが
そもそも文字コードはどうなっているのか?## 答え
PHPの公式を見てみるhttps://www.php.net/manual/ja/function.mb-strlen.php
説明には`文字列の長さを得る`とだけ書かれているが
パラメータにはしっかりと`$encoding`が書かれている
“`php
mb_strlen(string $string, ?string $encoding = null): int
“`– **encoding**
encoding パラメータには文字エンコーディングを指定します。省略した場合、
もしくは **null** の場合は、 内部文字エンコーディングを使用します。#### 内部文字エンコーディングとは?
PHP.iniで文字のエンコーディングを設定できるみたいです。https://www.php.net/manual/ja
【PHP基礎】foreachで注文票を作ってみましょう!
# foreachで配列の中身を取り出すとの復習
まずは以下のコードを通して、foreachの基礎を復習します。
もし、もうforeachのことは理解だったら、「配列とforeachを通して、注文票を作ってみましょう!」との部分へ飛んでください。## コード
“`php
1 100,
6 ‘ビックマック’ => 490,
7 ‘ポテナゲ大’ => 500,
8 ‘サイドサラダ’ => 290,
9 ];
10
11 // 2. foreachで、配列のキーと値を一つずつ取り出す
12 foreach ($prices as $key => $price) {
13 echo $key.’ – ‘.$price.’円’.PHP_EOL;
14 }
“`## コードを実行した結果
“`
コーラ – 100円
ビックマック – 490円
ポテナゲ大 – 500円
サイドサラダ – 290円
“`## コードの説明
* __priWordPressで少し高度な検索をする
## 投稿タグ名のあいまい検索 or タイトル or カスタムフィールド
“`php:functions.php
function post_content_to_meta_queries($where, $wp_query){
global $wpdb;$meta_queries = $wp_query->get( ‘meta_query’ );
if( !$meta_queries || $meta_queries == ” ) return $where;$where = str_replace($wpdb->postmeta . “.meta_key = ‘post_title’ AND ” . $wpdb->postmeta . “.meta_value”, $wpdb->posts . “.post_title”, $where);
$where = str_replace($wpdb->postmeta . “.meta_key = ‘post_content’ AND ” . $wpdb->postmeta . “.m「ログってなによ」Laravel
# ログとは
人間さん「ログを出力するとかロガーとか聞くけど」
人間さん「そもそもログってなんなのよ」いぬ先生「急に来たね」
いぬ先生「storage/logs/laravel.log に出力されてるよ」人間さん「ファイル見にいったけど」
人間さん「なにかずらずら書かれてることはわかった」
人間さん「でなんなの?」いぬ先生「ここに書かれてるから読んでね」
https://readouble.com/laravel/8.x/ja/logging.html
人間さん「初っ端から何言ってるかわかりません!」
いぬ先生「うん!ごめんね!」
いぬ先生「ログは、アプリケーションの動作検証やユーザーのアクセス状況など」
いぬ先生「ある時点の事実を記録するものなんだ」人間さん「なるほどなるほど」
人間さん「で、どういうことができるの?」いぬ先生「例えば、アプリケーション運用での障害検知や障害の原因究明」
いぬ先生「データ分析での活用などがある」
いぬ先生「ログにはさまざまな利用用途があるから」
いぬ先生「正しいログ生成は重要なことなんだ」人間さん「ログって大事なのね~」
pickle install redisでシリアライザとしてigbinaryを有効にする方法
# 先に結論から
“`
# 先にigbinaryを入れる
pickle install igbinary -n# オプションをテキストファイルに出力
echo “–enable-redis-igbinary” > redis-options.txt# –with-configure-optionsでオプション指定のテキストを指定
pickle install redis -n –with-configure-options=redis-options.txt
“`# 経緯
– php環境にredisクライアントを入れたい
– peclではなくpickleを使いたい
– 単に `pickle install redis` としてもigbinaryが有効にならない
– インタラクティブモードで実行され、プロンプトに対してyes/noで回答していくと有効になる
– Dockerfileでプロンプトに都度入力するのは困難
– pickleをバッチモードで実行しつつ、 `–enable-redis-igbinary` したい【 #ゆめみからの挑戦状 ★第5弾】解答の紹介と総括
ツイート貼りすぎてページロード重いですがご容赦ください
# 問題
@Yametaro さんメインで定期開催していた [#ゆめみからの挑戦状](https://twitter.com/hashtag/%E3%82%86%E3%82%81%E3%81%BF%E3%81%8B%E3%82%89%E3%81%AE%E6%8C%91%E6%88%A6%E7%8A%B6) ですが,今回は私から PHP に関連する問題として出題させていただきました。
【 #ゆめみからの挑戦状 ★第5弾】
シリーズ初の PHP 問題です?✨【お題】
以下のぐちゃぐちゃな配列を期待されている形に整形して出力してください【回答方法】https://t.co/rZguz6aKJX またはソースコードのスクリーンショットを引用 RT
【結果発表】
9/15(木)【出題者】
まっぴー @mpyw pic.twitter.com/GSpE5Tekmp— 株式会社ゆめみ | YUMEMI (@yumemiinc) September 8, 2022
“`php
‘two’, ‘four’ => ‘4th’],
‘three’ => ‘3rd’,
[‘one’ => ‘1st’],
’10th’ => ‘ten’,
[‘6th’ => ‘six’],
‘5th’ => ‘five’,
‘seven’ => ‘7th’,
[‘fourteen’ => ’14th’,Wikiレンタルサービスをつくってみた
# はじめに
こんにちは、ぴたんです。
Wikiを無料で作成できるサービス、「WikiChree.COM」を数ヶ月前に作りました。https://wikichree.com/
# サービスについて
WikiChree.COM以前はWikiCというサービスでした。
ソフトウェアにはPukiWikiを利用しており、PukiWikiはPHPで書かれた和製のCMSであり、Wikiを簡単に立てることができる便利なWebソフトウェアです。それをベースとしてWikiChreeのシステムを作りました。つまり、WikiChreeはほぼPukiWikiのレンタルサービスです。
コントロールパネルで設定を変更したりユーザーを追加できたりプラグイン導入できたりと割とカスタマイズできるようにしています。
サーバーにはCore Serverを使っています。# お試しとサンプル
https://wikichree.com/TrialWiki/https://wikichree.com/SampleWiki/
お試しとサンプルを載せています。
# 使い方
https://wikichree.com/Docker上でLaravelのプロジェクトを作成するまで 後半
前回の記事では、`Dockerfile`と各種コンテナの設定ファイルを記述しました。
今回の記事では、`docker-compose`について学んでいきます。
意外と難しくはないので頑張っていきましょう。前回作成したディレクトリと、その中に入っているファイルは以下の通りでした。
“`
practice
docker
app
Dockerfile
php.ini
db
Dockerfile
my.cnf
web
Dockerfile
default.conf
“`
`app`,`db`,`web`それぞれのdockerイメージである`Dockerfile`を作成しました。
ちなみに、ディレクトリを3つに分けているのは、web3層アーキテクチャの構造をわかりやすくしているからです。
web3層アーキテクチャについては、以下の記事に詳しく書かれているので、ご覧くださいhttps:/
世にも奇妙なPHPセッションの話
PHPでWEBサイトを構築していれば
当たり前のように使うのがセッション管理の仕組みです。
PHPセッションを管理する方法としては、3種類あります。1. ファイル(デフォルト)
2. データベース
3. KVS昔は1か2が主流でしたが、
最近では、KVS(Redisなど)が当たり前に使われるようになってきましたよね。
AWSでRedisが標準サポートされたのが大きいですね。大規模サイトの場合、サーバを冗長化するのが一般的です。
その場合、どのサーバからアクセスしてもセッションの一意性を担保したり、
DBかKVSでセッションを共有するのが最もシンプルです。2016年くらいに私が構築に関わった
とある大規模サイトがあります。
そのサイトは、年間売上100億級なので
パフォーマンス命です。インフラ環境はAWSだったのですが、
当時のシステム制約上、KVSが気軽に利用できる状況ではありませんでした。とはいえ、セッション管理がDBだと過剰負荷となり、
パフォーマンス的によろしくないです。
ということで、選択したのはファイル管理です。前置きが長くてすみません(><);
関連する記事
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関連のことを調べてみた