質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

3回答

410閲覧

Laravelを勉強していたのですが、関数についてお聞きしたいことがあります

newyee

総合スコア213

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1グッド

1クリップ

投稿2019/03/11 22:46

編集2019/03/11 23:10

laravelを勉強していた際、以下のコードに「tag('h1','other')」という記述がありました。この部分はPHPの単なる「tag」関数ではないと思うのですが、どのような意味があるのでしょうか?

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7global $head, $style, $body, $end 8$head = '<html><head>'; 9$style = <<<EOF; 10<style> 11 body{font-size:16px; color:#999;} 12 h1{font-size:100pt; text-align:rigth; color:#eee; 13 margin:-40px 0px -50px 0px} 14</style> 15EOF; 16$body = '</head><body>'; 17$end = '</body></head>'; 18 19function tag($tag,$txt){ 20 return "<{$tag}>" . $txt . "</{$tag}>"; 21 22} 23class HelloController extends Controller 24{ 25 public function index() { 26 global $head, $style, $body, $end; 27 28 $html = $head . tag('title', 'Hello/Index') . $style . $body 29 . tag('h1','Index') . tag('p','this is Index page') 30 . '<a href="/hello/other">go to other page</a>' 31 . $end; 32 return $html; 33 34 35 36} 37 38public function other(){ 39 global $head,$style,$body,$end; 40 41 $html = $head . tag('title','Hello/Other') . $style . $body 42 . tag('h1','other') . tag('p','this is other page' 43 . $end; 44 return $html; 45 46 ) 47} 48
DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/03/11 23:01

タイトルには要件のみ書いてください
m.ts10806

2019/03/11 23:03

というか、なんでしょうこの、Laravelどころかオブジェクト指向丸無視のコードは。
m.ts10806

2019/03/11 23:13

今の理解具合でフレームワークに手を出すのはフレームワークのメリットを活かすどころか殺すことにしかならないのでもっと基礎の基礎からやり直した方がいいですよ。余計分からなくなるだけです。
newyee

2019/03/11 23:16

すみません。修正しました。 laravelを入門書にて、勉強しています。僕は良く分からないのですが、もしかしたら、入門者用ですし、簡単に書いてくれているとかはあるかもですね...
newyee

2019/03/11 23:17

あ、ごめんなさい。同じ内容のものを間違えて投稿してしまいました...
m.ts10806

2019/03/11 23:19 編集

Laravelと書いてるけどLaravel一切関係ないところで悩んでるので。 マニュアルサイトに導入からきちんと書いてあるので書籍よりマニュアルが適切。 それより変数の使い方、文字列の使い方、ユーザー定義関数の使い方からやり直さないといけないレベルですよ
newyee

2019/03/11 23:27

やっぱりもっときちんと基礎からやり直さなければ、ならないですかね。自分の中では、簡単な掲示板のサイトを作ったことで、次のステップへ...とか思ってしまっていたのですが、まだ早かったということですね... PHPの書籍で、「独習PHP 第3版」という網羅的に学べる本もあるみたいですし、こちらで一度やりなおしてみますかね... ただ、この間パーフェクトPHP買ってしまってほとんどやっていないので、自分的にはちょっと本買いすぎてまともにできてないな...って気持ちもあるので、どうするか若干迷っております...
退会済みユーザー

退会済みユーザー

2019/03/11 23:30

パーフェクトPHPの内容が修得できりゃ、少なくともPHPの基礎知識でここの回答者にお世話になることはないだろうし、がんばってよむといいんじゃねーかな?
guest

回答3

0

本当に本に書いてあったならどの本かタイトルを書いて欲しい。
読んではいけない本の情報として必要。

投稿2019/03/12 01:07

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/03/12 01:55

↑の質問でも私、ほぼ同じ回答してますね。
m.ts10806

2019/03/12 01:56

掌田津耶乃さんほんとに色々手を出しすぎですね。
退会済みユーザー

退会済みユーザー

2019/03/12 02:02

よく見たらほんとにmtsさんがいるじゃんwww teratailに雇われているかのような働きっぷり、いつか疲れてどうにかなってしまうんじゃねーかと心配だわさ
m.ts10806

2019/03/12 02:10

いや、仕事は別できちんとしてますので。 各所で同じこと言ってるので、初心者はみなさん同じなんだなーと思ってます。機械的な対応になるのもそのせいですかね。 ちょっと横見れば初心者の先輩が同じ悩みで投稿してるのに…
guest

0

質問に提示されているコードは何の書籍か知らないですが、ちょっと意味が分からないです。何のためにフレームワークを入れてるのか分からないようなコードです。
入門書としても微妙ではないでしょうか。フレームワークのメリットなりLaravelの特長を活かす内容ではないように思います。

Laravelは今もっともアップデートが頻繁なフレームワークのひとつなので書籍が出た頃には古くなっている可能性が最も高いです。

マイナーバージョンひとつ違えば仕組みが変わっていることもあるくらい。
なので、書籍ではなく今自分の環境に導入しているバージョンをマニュアルから選んでマニュアルにそって進めるのが通例です。
フレームワークは特にコピペや写経でやっていくものではありません。

多少私見もありますが「Web職人のためのフレームワーク」と謳われているように、学習コストは他のフレームワークより高い印象です。
最低限、オブジェクト指向まではきちんと理解された状態でないとフレームワークのメリットが全くないまま時間だけが過ぎることになります。

投稿2019/03/11 23:33

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

newyee

2019/03/11 23:45

ご回答ありがとうございます。 magendaさんに頂いたご回答のコメント欄でも、コメントさせて頂いたのですが、自分の知識に穴がありすぎることに気づいたので、また、基礎からやり直してみたいと思います...
newyee

2019/03/11 23:46

貼って頂きました、laravelのマニュアルも正直、理解できない所も多いですしね... とにかくやり直してみます!
m.ts10806

2019/03/12 00:01

分からないからと、飛ばすからですね。 いずれにしてもプログラミングって学校の勉強や試験に挑むのと違って、書籍を主にした勉強に向かないんですよね。 私も書籍を手に取るときは「ここのこの機能や使い方について詳しく書いてるものがほしい」という動機がほとんどです。 トライ&エラーであとは公式マニュアルを半ば辞書がわりにやってくしかないです。考え方を身に付けないと成長がのぞめないのがプログラミング言語で、その上に乗っているのがフレームワークです。 たぶん色んなところで言ってますが、最初に作った掲示板、作り直してみては?「リファクタリング」です。 無駄な処理はないか、共通化はできないか、短く書けないか、もっと効率よく書けないか 考えてみてください。 そこに成長のチャンスが幾らでも転がっています。
newyee

2019/03/12 00:27

アドバイス頂きまして、ありがとうございます。 そうですね... あの掲示板、修正してみようと思います!あのできでは、自分自身まだまだだと思っていますしね...
m.ts10806

2019/03/12 00:34 編集

ひとまず1歩目で今の状態で昔のプログラムを見返してみて、”作り直す”こと 次にオブジェクト指向を取り入れること、(できればオレオレフレームワークにも挑戦すること) 先の目標としてはその掲示板をLaravelで作る こと。 URLの考え方も変わるので段階を1歩1歩進むことが必要です。1段飛ばしはできません。飛ばしたところに必須なものが埋まっているからです。 何度も言ってますが、自身の現在地を見誤ると成長は出来ません。 思っている(自己評価)より低い場所に置くようにしてください。
newyee

2019/03/12 00:56 編集

ご丁寧にありがとうございます。 そうですね...まずは、オブジェクト指向を取り入れてみる前に、改善の余地がないかを見直して、修正してみたいと思います。そして、フレームワークにも挑戦していけるよう、取り組んでいこうと思います。
m.ts10806

2019/03/12 00:57

CRUDさえ理解できればあとはロジックと作り方なので、やはりロジック・考え方部分をきちんとしていくようにしてください。 teratailでの回答でも参考に出来る部分は大いにあります。 「どのような意図でそのコードになったのか」考えるだけでも身になります。
newyee

2019/03/12 12:07

mtsさん... 実は、掲示板のサイトを見直して、自分で修正できる箇所は修正してみたのですが、次はクラスなども作りオブジェクト指向に作っていきたいと考えているのですが、どこをどうまとめれば良いかが分かりません。 その旨をterateilにて、質問を立てて、お聞きできたらと考えているのですが、どう思われますでしょうか?
m.ts10806

2019/03/12 12:14

丸投げになっても質問にならないしアドバイスのポイントが絞れませんので、どんな不細工な形でも良いのでまずやってみては? 基本は「役割分担」です。役割は細分化すればするほど再利用性が高まります。 まずはどのような役割があるかを大まかに洗いだし、そこから細かくわけていくと良いです。 クラス設計とかになってきますが、そこはQiitaとかでphpに限らず評価数の多い記事を読んでみてはどうでしょうか。 ※ただし、本当にオブジェクト指向に入れるところまで来れてるのかこれまでのあなたの行動傾向から疑問しかないですが
newyee

2019/03/12 12:41

ご返信ありがとうございます。 「クラス設計」ですね...そうですよね。Qiitaとかにも情報はありますし、取り敢えず、調べてみたいと思います。正直どこをどのようにまとめれば良いか、という部分が分からない為、不安ではあるのですが、色々とまずは調べて書いてみたいと思います。
m.ts10806

2019/03/12 13:04

設計もそうですが、まずは基本を身につけることが大事です。 調べても読んでもできるようになるわけではありません。 PHPマニュアルにもオブジェクト指向、クラスについては結構枠を割いて書かれています。 考え方だけであればPHPに限る必要はないですが、PHPにおけるやり方はPHPマニュアルから吸収するのが吉です。 というか全てPHPマニュアルを優先にすべきです。他にも書きましたが、PHPマニュアルを難しい、読みづらいと思っているうちは成長できません。 辞書的な役割も出来ますし、仕様なのできちんと正しいことが書いてあります。Qiitaも人間が書く記事なので全てが正しいとは限りません。必ずPHPマニュアルと整合性をとって、どちらが正しいの?となったときはPHPマニュアルを採用するようにしてください。
m.ts10806

2019/03/12 21:04

何が出来るかきちんと知らない内から「まとめる」ことを考えるのは早計ですよ。毎日何かしら考えたとしても「まとめる」ことを考えるまでに数年かかると言っていいです。私でもそこまで全て把握しきれてるわけではないですし(一応、自分でフレームワークのようなものは作れますが、日々最適化を目指してます)
newyee

2019/03/13 01:39 編集

アドバイス頂きまして、ありがとうございます。 PHPマニュアル早速読んでみようと思います。正直、難しいと思って避けていた部分があったので...とりあえず、PHPマニュアルを読むなどして、調べて、まずコードを書いてみたいと思います
m.ts10806

2019/03/13 01:41

正直、これだけ言われて重い腰をあげる状況、かなり出遅れたと思ってください。 説明書見ないで道具を使うタイプの人にはプログラミングは向かないということにもなります。 書いた通り、プログラムの言語仕様の通りにしか動かないので、そこを無視できるわけがないんです。
guest

0

ベストアンサー

ふつーにコード中にある

PHP

1function tag($tag,$txt){ 2 return "<{$tag}>" . $txt . "</{$tag}>"; 3 4}

じゃないのん?

第一引数にタグ名、第二引数にタグ内に入れたいコンテンツを渡すと、その指定した要素内に指定コンテンツが入ってる要素が返されるってだけじゃないのん?

投稿2019/03/11 22:49

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

newyee

2019/03/11 23:08 編集

ご回答ありがとうございます。 作った関数をただしようしていただけですよね... すみません。できましたら、もう一点お聞きしたい箇所があるのですが、「$txt . "</{$tag}>」ここの部分では、波カッコでくくっている変数とくくっていない部分があります。括っている場合と括っていない場合ではどのような違いがあるのでしょうか...?
退会済みユーザー

退会済みユーザー

2019/03/11 23:15

ないとおもうよー。 少なくとも、PHPをつくったひととかに聞かないとわからない類の、いわゆる「歴史的背景から2つの記法があります(キリッ)」てきなやつだとおもうぜー
newyee

2019/03/11 23:29

え!そうだったんですね。ということは、出力される内容は同じということでしょうか?自分的には、波カッコでくくっているので、何か特別な意味があるのかと思っていました...
m.ts10806

2019/03/11 23:34

文字列、変数からやり直しですね。
退会済みユーザー

退会済みユーザー

2019/03/11 23:34

細かくいえば、並括弧使うと若干複雑な式も埋め込めるっつー違いはあるとおもーけど、それいがいは一緒だったはずよ https://paiza.io/projects/6NAAohh6YG_MP2fmohSzFA
m.ts10806

2019/03/11 23:35

phpマニュアル読めば理解できることでもありますけど。
退会済みユーザー

退会済みユーザー

2019/03/11 23:37 編集

せやなー。 逆に言えば、PHPの公式マニュアルで正しい情報を逐一確認するくせさえつけりゃ、覚えてる知識なんてあやふやでも割とまかりとおるっつーことなんだが (そうすると実際の会話とかPHP技術者認定試験とかでぽかるわけだが)
newyee

2019/03/11 23:39

リンクありがとうございます。 出力される内容同じですね... 本当に基礎できなさすぎて、自分に愕然としています... きちんとやり直さないとですね...
退会済みユーザー

退会済みユーザー

2019/03/11 23:41

まあ、良い感じで納得いったら質問解決済みにしといてくんろ~
newyee

2019/03/11 23:42

PHPマニュアルって難しいイメージがあって敬遠していたんですけど、読むくせつけてみようと思います。
m.ts10806

2019/03/12 00:03

PHP技術者認定試験 初級持ってますが意外としっかりマニュアルの内容出ますからね。
m.ts10806

2019/03/12 00:05

身も蓋もないこと言うとphpマニュアル敬遠してる人で初心者から脱せる人はいないですね。 php関連の質問の回答をよく見てみてください。ほとんどphpマニュアルへのリンクがありますよね?私も大抵phpマニュアルへのリンクを貼ります。 一番正しいことが書いてあり、それだけ大事で無視できない証拠です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問