php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

Reactを初めて触ってみました(tutorialその②)

Reactを初めて触ってみました(tutorialその②)

前回もお話したとおり社内で別チームの人から自分の市場価値を上げたい、今のまま自分の業務をやっていては駄目なのではないかとということで私も業務没頭型で世間の波に乗り遅れている手前こんな話は救いの意見。前回に引き続きやっていきましょう!

やっとreactを触るの巻ですね。
まずReactを調べて(実際にざっくりしか知らなかったもので。。)Reactのサイトからとりあえずtake the tutorialに進んでみて理解していこうかなと思います。

話は脱線しますが、PHPエンジニアとして長くやっていてWEBで検索して誰かの書いている同様な例を参考にやってまいりましたが、ひしひしと公式を理解できないと他の作業で理解が深まらなくて駄目だなと思っていて公式から手をつけた次第です。

早速スタートしていきます。
どうやら簡単なゲームに触れるらしいとのこと。
HTMLとjavascriptの知識はあったほうがいいらしくES6とやらも?(しらない。。)
始めるにあたってはブラウザでコードを編集するか環境を作ってやれとのこと
今回はいつもどおりdockerで環境を構築して試していこうと思う・・・っと作り始めたんですが触れるだけならIDEとローカルだけで理解をまずはしたほうがいいのでは?と思い手軽に触れる環境を前回構築しています。ですのでlocalhost:3000でブラウザから参照できているところまでできているところからですね。

では先に進みます
次はReact.Componentのサブクラスから始めましょうとのことです。
componentはpropsと呼ばれるパラメータを取り込みrenderメソッドを返して表示するビューの階層を返します。

とのこと

実際にはやらないのですが理解のために概要で説明に書いてあることを実行してみました。ShoppingListをレンダリングしているところをちょっと試してみますね。

class ShoppingList extends React.Component {
  render() {
    return (
      <div className="shopping-list">
        <h1>Shopping List for {this.props.name}</h1>
        <ul>
          <li>Instagram</li>
          <li>WhatsApp</li>
          <li>Oculus</li>
        </ul>
      </div>
    );
  }
}

上と下は同等であって興味があればAPIリファレンスで説明しているよとのこと

return React.createElement('div', {className: 'shopping-list'},
  React.createElement('h1', /* ... h1 children ... */),
  React.createElement('ul', /* ... ul children ... */)
);

下の使い方はよく調べなかったので説明できませんが上のほうはShoppingListというクラスを作り、その中に何をレンダリングしたいか指示を書けばいいんですということらしいです。

でもShoppingListクラスを追加しただけではブラウザに何も表示されません。
初心者なもので関係性を理解していこうと思い調べていくと理解できました。

tutorialのベースソースで追加してShoppingListを表示しようとしてみたんですが

ReactDOM.render(
  <Game />,
  document.getElementById('root')
);
ReactDOM.render(
  <ShoppingList />,
  document.getElementById('shopping-list')
);

ReactDOM.render
レンダリングしますよ、第一引数?がクラス名、第二引数?が操作対象の要素ID

上で言えばGameクラスの指示をid=rootにレンダリングします、ShoppingListの指示をid=shopping-listにレンダリングします

ということになるわけですね。※はじめここが理解できずになぜ表示されない?!となりました。

しかし、index.htmlにはid=shopping-listはありませんので追記してみました。

<div id="shopping-list"></div>

そうすると表示されました。

クラスとレンダリング、htmlの要素IDの関係が理解できました。

次回は○☓ゲームを進めていきたいと思います。

←Reactを初めて触ってみました(tutorialその①)
→Reactを初めて触ってみました(tutorialその③)

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする