zoukankan      html  css  js  c++  java
  • PHP性状的使用

    <?php
    trait Geocodable{
        /** @var string */
        protected $address;
        
        /** @var GeocoderGeocoder */ 
        protected $geocoder;
        
        /** @var GeocoderResultGeocoded */
        protected $geocoderResult;
        
        public function setGeocoder(GeoCoderGeocoderInterface $gocoder)
        {
            $this->geocoder = $gocoder;
        }
        
        public function setAddress($address)
        {
            $this->address = $address;
        }
        
        public function getLatitude()
        {
            if (isset($this->geocoderResult) == false){
                $this->geocodeAddress();
            }
            
            return $this->geocoderResult->getLatitude();
        }
        
        public function getLongitude()
        {
            if (isset($this->geocoderResult) === false){
                $this->geocodeAddress();
            }
            
            return $this->geocoderResult->getLongitude();
        }
        
        protected function geocodeAddress()
        {
            $this->geocoderResult = $this->geocoder->geocode($this->address);
            
            return true;
        }
    }
    
    //使用性状
    class RetailStore
    {
        use Geocodable;
        
        
        //这里是类的实现
    }
    
    
    $geocoderAdapter = new GeocoderHttpAdapterCurlHttpAdapter();
    $geocoderProvider = new GeocoderProviderGoogleMapsProvider($geocoderAdapter);
    $geocoder = new GeocoderGeocoder($geocoderProvider);
    
    $store = new RetailStore();
    $store->setAddress('420 9th Avenue, New York, NY 10001 USA');
    $store->setGeocoder($gocoder);
    
    $latitude = $store->getLatitude();
    $longitude = $store->getLongitude();
     echo $latitude, ':', $longitude;
  • 相关阅读:
    鼠标事件:
    各种坑记录
    Go学习笔记
    Scala学习笔记-7-代码片段
    Go学习笔记
    NIO学习笔记
    Redis常用操作
    docker & k8s 笔记
    Node常用笔记
    Maven常用笔记
  • 原文地址:https://www.cnblogs.com/yangcclg/p/6105451.html
Copyright © 2011-2022 走看看