Laravel重構企業級電商項目 全面強化職場核心競爭力

download:Laravel重構企業級電商項目 全面強化職場核心競爭力

項目重構能力是全部開發者的核心競爭力。本課程將經過Laravel技術+項目分析+業務模塊拆解+重構技巧講解+重構實戰,帶你重構一個企業級電商項目,最終幫你構建一套完整的重構技術體系,今後輕鬆解決項目重構問題,成爲企業搶手的高薪人才。html

適合人羣
1.初中級PHP開發者
2.對重構感興趣的開發者json

技術儲備要求
有PHP語法基礎
MySQL基礎使用
Redis基礎使用ide

public class ObjectIdConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(ObjectId);
}code

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType != JsonToken.String)
        {
            throw new Exception(
                String.Format("Unexpected token parsing ObjectId. Expected String, got {0}.",
                              reader.TokenType));
        }

        var value = (string)reader.Value;
        return String.IsNullOrEmpty(value) ? ObjectId.Empty : new ObjectId(value);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value is ObjectId)
        {
            var objectId = (ObjectId)value;

            writer.WriteValue(objectId != ObjectId.Empty ? objectId.ToString() : String.Empty);
        }
        else
        {
            throw new Exception("Expected ObjectId value.");
        }
    }
}

在ObjectId字段上加一行代碼便可orm

[JsonConverter(typeof(ObjectIdConverter))]
public string _id { get; set; }
若是使用Newtonsoft的JsonConvert的話,還須要額外加上參數htm

JsonConvert.DeserializeObject<xxxx>(json,new ObjectIdConverter());token

三、經過Ignore,一種頗有技巧性的寫法開發

[JsonIgnore]
public override ObjectId _Id { get; set; }get

[BsonIgnore]
public string _IdStr
{
get
{
return Id.ToString();
}
set
{
ObjectId id;
ObjectId.TryParse(value, out id);
Id = id;
}
}string

相關文章
相關標籤/搜索