webconsole vor 6 Jahren
Ursprung
Commit
25619dad64
3 geänderte Dateien mit 55 neuen und 0 gelöschten Zeilen
  1. 18 0
      composer.json
  2. 20 0
      src/EnvDsn.php
  3. 17 0
      src/OssDsn.php

+ 18 - 0
composer.json

@@ -0,0 +1,18 @@
+{
+    "name": "jrtk/php-dsn-parser",
+    "description":  "parse dsn string",
+    "keywords": ["dsn parser"],
+    "license": "MIT",
+    "require": {
+        "php": ">=5.6.0"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "^5"
+    },
+    "autoload": {
+        "psr-4": {
+            "DsnParser\\EnvDsn\\": "src/",
+            "DsnParser\\OssDsn\\": "src/"
+        }
+    }
+}

+ 20 - 0
src/EnvDsn.php

@@ -0,0 +1,20 @@
+<?php
+namespace DsnParser;
+class EnvDsn{
+	public static parse($dsn){
+		$info = parse_url($dsn);
+		if(!$info['scheme'])
+			return false;
+		if(! in_array($info['scheme'], array('http','https') )
+			return false;
+		if($info['port'])
+			$url = $info['scheme']. '://' . $info['host'] . ':' . $info['port'];
+		else
+			$url = $info['scheme']. '://' . $info['host'];
+		return array(
+			'appid'  =>  $info['user'],
+			'appsecret'  => $info['pass'],
+			'url'  => $url
+		);
+	}
+}

+ 17 - 0
src/OssDsn.php

@@ -0,0 +1,17 @@
+<?php
+namespace DsnParser;
+class OssDsn{
+	public static parse($dsn){
+		$info = parse_url($dsn);
+		if(!$info['scheme'])
+			return false;
+		if($info['scheme'] != 'oss')
+			return false;
+		return array(
+			'access_id'  =>  $info['user'],
+			'access_secret'  => $info['pass'],
+			'endpoint'  => $info['host'],
+			'bucket'  =>  isset($info['path']) ? substr($info['path'],1) : ''
+		);
+	}
+}