開源一個企業官網

Company-Website

Build status Gitter

企業官方網站Pro版php

特點

  • :gem: 響應式佈局: 使用了BootStarp做爲UI基礎
  • :triangular_ruler: 跨平臺: PHP做爲後端開發語言
  • :rocket: 安全: PDO、關鍵信息配合數據加密操做
  • :iphone: 響應式佈局: 使用了BootStarp做爲UI基礎
  • :art: UI美觀大方: 本身設計的UI,簡潔大方
  • :globe_with_meridians: 先後端分離: 先後端分離,前端經過接口訪問並處理數據
  • :gear: REST風格的API: 本身基於PDO封裝的數據庫操做類以及數據處理類,方便滴製做出REST風格的API

封裝代碼

//數據操做
 <?php
//header('content-type:text/html;charset=utf-8');
class PdoMySQL{
	public static $config=array();//設置鏈接參數,配置信息
	public static $link=null;//保存鏈接標識符
	public static $pconnect=false;//是否開啓長鏈接
	public static $dbVersion=null;//保存數據庫版本
	public static $connected=false;//是否鏈接成功
	public static $PDOStatement=null;//保存PDOStatement對象
	public static $queryStr=null;//保存最後執行的操做
	public static $error=null;//報錯錯誤信息
	public static $lastInsertId=null;//保存上一步插入操做產生AUTO_INCREMENT
	public static $numRows=0;//上一步操做產生受影響的記錄的條數
	/**
	 * 鏈接PDO
	 * @param string $dbConfig
	 * @return boolean
	 */
	public function __construct($dbConfig=''){
		if(!class_exists("PDO")){
			self::throw_exception('不支持PDO,請先開啓');
		}
		if(!is_array($dbConfig)){
			$dbConfig=array(
					'hostname'=>DB_HOST,
					'username'=>DB_USER,
					'password'=>DB_PWD,
					'database'=>DB_NAME,
					'hostport'=>DB_PORT,
					'dbms'=>DB_TYPE,
					'dsn'=>DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME
			);
		}
		if(empty($dbConfig['hostname']))self::throw_exception('沒有定義數據庫配置,請先定義');
		self::$config=$dbConfig;
		if(empty(self::$config['params']))self::$config['params']=array();
		if(!isset(self::$link)){
			$configs=self::$config;
			if(self::$pconnect){
				//開啓長鏈接,添加到配置數組中
				$configs['params'][constant("PDO::ATTR_PERSISTENT")]=true;
			}
			try{
				self::$link=new PDO($configs['dsn'],$configs['username'],$configs['password'],$configs['params']);
			}catch(PDOException $e){
				self::throw_exception($e->getMessage());
			}
			if(!self::$link){
				self::throw_exception('PDO鏈接錯誤');
				return false;
			}
			self::$link->exec('SET NAMES '.DB_CHARSET);
			self::$dbVersion=self::$link->getAttribute(constant("PDO::ATTR_SERVER_VERSION"));
			self::$connected=true;
			unset($configs);
		}
	}

	/**
	 * 獲得全部記錄
	 * @param string $sql
	 * @return unknown
	 */
	public static function getAll($sql=null){
		if($sql!=null){
			self::query($sql);
		}
		$result=self::$PDOStatement->fetchAll(constant("PDO::FETCH_ASSOC"));
		return $result;
	}
	/**
	 * 獲得結果集中的一條記錄
	 * @param string $sql
	 * @return mixed
	 */
	public static function getRow($sql=null){
		if($sql!=null){
			self::query($sql);
		}
		$result=self::$PDOStatement->fetch(constant("PDO::FETCH_ASSOC"));
		return $result;
	}
	/**
	 * 根據主鍵查找記錄
	 * @param string $tabName
	 * @param int $priId
	 * @param string $fields
	 * @return mixed
	 */
	public static function findById($tabName,$priId,$fields='*'){
		$sql='SELECT %s FROM %s WHERE id=%d';
		return self::getRow(sprintf($sql,self::parseFields($fields),$tabName,$priId));
	}
  ...
  
  //接口製做
  <?php

class Response {
    const JSON = "json";
    /**
     * 按綜合方式輸出通訊數據
     * @param integer $code 狀態碼
     * @param string $message 提示信息
     * @param array $data 數據
     * @param string $type 數據類型
     * return string
     */
    public static function show($code, $message = '', $data = array(), $type = self::JSON) {
        if(!is_numeric($code)) {
            return '';
        }
        //$type = isset($_GET['format']) ? $_GET['format'] : self::JSON;
        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data,
        );

        if($type == 'json') {
            self::json($code, $message, $data);
            exit;
        } elseif($type == 'array') {
            var_dump($result);
        } elseif($type == 'xml') {
            self::xmlEncode($code, $message, $data);
            exit;
        } else {
            // TODO
        }
    }
    /**
     * 按json方式輸出通訊數據
     * @param integer $code 狀態碼
     * @param string $message 提示信息
     * @param array $data 數據
     * return string
     */
    public static function json($code, $message = '', $data = array()) {

        if(!is_numeric($code)) {
            return '';
        }

        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data
        );

        echo json_encode($result);
        exit;
    }

    /**
     * 按xml方式輸出通訊數據
     * @param integer $code 狀態碼
     * @param string $message 提示信息
     * @param array $data 數據
     * return string
     */
    public static function xmlEncode($code, $message, $data = array()) {
        if(!is_numeric($code)) {
            return '';
        }

        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data,
        );

        header("Content-Type:text/xml");
        $xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
        $xml .= "<root>\n";

        $xml .= self::xmlToEncode($result);

        $xml .= "</root>";
        echo $xml;
    }

    public static function xmlToEncode($data) {

        $xml = $attr = "";
        foreach($data as $key => $value) {
            if(is_numeric($key)) {
                $attr = " id='{$key}'";
                $key = "item";
            }
            $xml .= "<{$key}{$attr}>";
            $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
            $xml .= "</{$key}>\n";
        }
        return $xml;
    }
}
?>

使用

一、下載或者clone工程到本地
二、修改數據庫配置文件 config.php 
三、新建數據庫 **db_cro**
四、將數據表導入並執行
五、預覽查看效果並修改爲本身須要的版本

主要功能

一、用戶註冊,填寫郵箱 -> 登陸郵箱點擊連接激活帳號 -> 登陸
二、查看官網信息。具有多設備適配、圖片預覽
三、查看產品,根據不一樣檢索條件查找,下單
四、完善收貨地址
五、查看訂單
六、公司招聘信息、FQA、位置、公司新聞、行業新聞、聯繫咱們等諸多功能

演示視頻

演示視頻html

聯繫

<h1>若是以爲項目對你有幫助,請給個star。雖然開源,可是用於商業用途請聯繫本人,不然承擔相應的責任</h1>前端

相關文章
相關標籤/搜索