PHP To Goモデルチェンジ手記(終)

3224 ワード

前言
PHPプログラマーとして、光栄に思います.しかし、時代の移り変わりの中で、十分な知識を持ってこそ生存することができる.
では、Go言語学から始めましょう.
この文章を見たあなたがGoに対して基本的な認識を持っていることを望んでいます.このシリーズの文章は私自身がGo言語を学ぶ方法と説明します.PHPコードとGoコードの対比で区別して理解する.
これは転換手記の最後の章で、下ではもう書くことができません.詳しく本を読んで理解する必要があります.本章では,以下のPHPとGolangの書き方を実戦的に比較する.
ここではLaravelとBeego(GoによるMVCフレームワーク)を用いて実証する
インストール
Laravel
//   composer    ,    
composer global require "laravel/installer"
//       
laravel new blog

Beego
// go       
go get github.com/astaxie/beego
//          
bee api blog

ディレクトリ構造
Laravel
// laravel           
| - app
| - bootstrap
| - config
| - database
| - public
| - resources
| - routes
| - storage
| - tests
| - vendor

Beego
//     ,beego   laravel      (           ,
//         beego        )
blog
├── conf
│   └── app.conf
├── controllers
│   └── object.go
│   └── user.go
├── docs
│   └── doc.go
├── main.go
├── models
│   └── object.go
│   └── user.go
├── routers
│   └── router.go
└── tests
    └── default_test.go

ルート
Laravel
Route::get('/user', 'UserController@index');

Beego
//  laravel        
//       ,                 
// beego          ,     https://beego.me/docs/mvc/controller/router.md
beego.Router("/user",&UserController{},"get:index")

モデル(Model)
Laravel

Beego
// Beego           ,  orm              
package models

import (
    "github.com/astaxie/beego/orm"
)
type User struct {
    Id       int    `json:"id"`
    Tel      string `json:"tel"`
    Password string `json:"password"`
    Status   string `json:"status"`
}

func init() {
    orm.RegisterModel(new(User))
}

せいぎょそうち
Laravel
 User::findOrFail($id)]);
    }
}

Beego
package controllers

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
)

//            beegoController
type MemberController struct {
    beego.Controller
}


func (c *CityController) Index() {
    var results []orm.Params

    orm.NewOrm().QueryTable("member").
        Values(&results)

    c.Data["json"] = results
    c.ServeJSON()
}

まとめ
Goを勉強して1ヶ月以上になりました.このような文章を書くのも多くの疑問を受けており、手記として発表するのは、他の言語を勉強したい友达に新しい言語に対する認識を与えるためであり、違いを比較するのではない.を選択します.
言語はただのツールで、PHPエンジニアの皆さんがPHPを使うことに限らないことを望んでいます.この年、PHPプログラマーの未来の道を書く文章をたくさん見ましたが、他の言語を勉強することを提案したことはありません.
自分を一つの分野に囲まないで、井戸の中の蛙にならないでください.
お礼を言う
ここを見てくれてありがとう.この文章が役に立つことを望んでいます.ありがとう