項目重構能力是全部開發者的核心競爭力。本課程將經過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