Overview

Namespaces

  • Kotchasan
    • Cache
    • Database
    • Http
    • Log
    • Orm
  • None
  • PHP
  • Psr
    • Cache
    • Http
      • Message
    • Log

Classes

  • ArrayIterator
  • DateInterval
  • DOMNode
  • Kotchasan
  • Kotchasan\Accordion
  • Kotchasan\ApiController
  • Kotchasan\ArrayTool
  • Kotchasan\Cache\ApcCache
  • Kotchasan\Cache\Cache
  • Kotchasan\Cache\CacheItem
  • Kotchasan\Cache\FileCache
  • Kotchasan\CKEditor
  • Kotchasan\Collection
  • Kotchasan\Config
  • Kotchasan\Controller
  • Kotchasan\Country
  • Kotchasan\Csv
  • Kotchasan\Curl
  • Kotchasan\Currency
  • Kotchasan\Database
  • Kotchasan\Database\Db
  • Kotchasan\Database\DbCache
  • Kotchasan\Database\Driver
  • Kotchasan\Database\PdoMysqlDriver
  • Kotchasan\Database\Query
  • Kotchasan\Database\QueryBuilder
  • Kotchasan\Database\Schema
  • Kotchasan\Database\Sql
  • Kotchasan\DataTable
  • Kotchasan\Date
  • Kotchasan\DOMNode
  • Kotchasan\DOMParser
  • Kotchasan\Email
  • Kotchasan\File
  • Kotchasan\Files
  • Kotchasan\Form
  • Kotchasan\Grid
  • Kotchasan\Html
  • Kotchasan\Htmldoc
  • Kotchasan\HtmlTable
  • Kotchasan\Http\AbstractMessage
  • Kotchasan\Http\AbstractRequest
  • Kotchasan\Http\Message
  • Kotchasan\Http\NotFound
  • Kotchasan\Http\Request
  • Kotchasan\Http\Response
  • Kotchasan\Http\Stream
  • Kotchasan\Http\UploadedFile
  • Kotchasan\Http\Uri
  • Kotchasan\Image
  • Kotchasan\InputItem
  • Kotchasan\Inputs
  • Kotchasan\KBase
  • Kotchasan\Language
  • Kotchasan\ListItem
  • Kotchasan\Log\AbstractLogger
  • Kotchasan\Log\Logger
  • Kotchasan\Login
  • Kotchasan\Menu
  • Kotchasan\Mime
  • Kotchasan\Model
  • Kotchasan\Number
  • Kotchasan\ObjectTool
  • Kotchasan\Orm\Field
  • Kotchasan\Orm\Recordset
  • Kotchasan\Password
  • Kotchasan\Pdf
  • Kotchasan\Province
  • Kotchasan\Router
  • Kotchasan\Session
  • Kotchasan\Singleton
  • Kotchasan\Tab
  • Kotchasan\TableRow
  • Kotchasan\Template
  • Kotchasan\Text
  • Kotchasan\Validator
  • Kotchasan\View
  • PHPMailer
  • Psr\Log\AbstractLogger
  • Psr\Log\LogLevel
  • Psr\Log\NullLogger
  • SMTP

Interfaces

  • ArrayAccess
  • Countable
  • DateTimeInterface
  • Iterator
  • IteratorAggregate
  • Psr\Cache\CacheItemInterface
  • Psr\Cache\CacheItemPoolInterface
  • Psr\Http\Message\MessageInterface
  • Psr\Http\Message\RequestInterface
  • Psr\Http\Message\ResponseInterface
  • Psr\Http\Message\ServerRequestInterface
  • Psr\Http\Message\StreamInterface
  • Psr\Http\Message\UploadedFileInterface
  • Psr\Http\Message\UriInterface
  • Psr\Log\LoggerAwareInterface
  • Psr\Log\LoggerInterface
  • SeekableIterator
  • Serializable
  • Traversable

Traits

  • Psr\Log\LoggerTrait

Exceptions

  • Exception
  • InvalidArgumentException
  • Kotchasan\ApiException
  • Kotchasan\Cache\Exception
  • Kotchasan\Database\Exception
  • Kotchasan\InputItemException
  • LogicException
  • phpmailerException
  • RuntimeException

Functions

  • createClass
  • debug
  • getClassPath
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * @filesource Kotchasan/Config.php
  4:  *
  5:  * @copyright 2016 Goragod.com
  6:  * @license http://www.kotchasan.com/license/
  7:  *
  8:  * @see http://www.kotchasan.com/
  9:  */
 10: 
 11: namespace Kotchasan;
 12: 
 13: /**
 14:  * Class สำหรับการโหลด config
 15:  *
 16:  * @author Goragod Wiriya <admin@goragod.com>
 17:  *
 18:  * @since 1.0
 19:  */
 20: class Config
 21: {
 22:     /**
 23:      * กำหนดอายุของแคช (วินาที)
 24:      * 0 หมายถึงไม่มีการใช้งานแคช
 25:      *
 26:      * @var int
 27:      */
 28:     public $cache_expire = 0;
 29:     /**
 30:      * default charset
 31:      *
 32:      * @var string
 33:      */
 34:     public $char_set = 'UTF-8';
 35:     /**
 36:      * ชื่อของเมล์เซิร์ฟเวอร์ เช่น localhost หรือ smtp.gmail.com
 37:      *
 38:      * @var string
 39:      */
 40:     public $email_Host = 'localhost';
 41:     /**
 42:      * รหัสผ่าน mailserver
 43:      *
 44:      * @var string
 45:      */
 46:     public $email_Password = '';
 47:     /**
 48:      * หมายเลขพอร์ตของเมล์เซิร์ฟเวอร์ (ค่าปกติคือ 25, สำหรับ gmail ใช้ 465, 587 สำหรับ DirectAdmin)
 49:      *
 50:      * @var int
 51:      */
 52:     public $email_Port = 25;
 53:     /**
 54:      * กำหนดวิธีการตรวจสอบผู้ใช้สำหรับเมล์เซิร์ฟเวอร์
 55:      * ถ้ากำหนดเป็น true จะต้องระบุUser+Pasword ของ mailserver ด้วย
 56:      *
 57:      * @var bool
 58:      */
 59:     public $email_SMTPAuth = false;
 60:     /**
 61:      * โปรโตคอลการเข้ารหัส SSL สำหรับการส่งอีเมล เช่น ssl
 62:      *
 63:      * @var string
 64:      */
 65:     public $email_SMTPSecure = '';
 66:     /**
 67:      * ชื่อผู้ใช้ mailserver
 68:      *
 69:      * @var string
 70:      */
 71:     public $email_Username = '';
 72:     /**
 73:      * ระบุรหัสภาษาของอีเมลที่ส่ง เช่น tis-620
 74:      *
 75:      * @var string
 76:      */
 77:     public $email_charset = 'utf-8';
 78:     /**
 79:      * เลือกโปรแกรมที่ใช้ในการส่งอีเมลเป็น PHPMailer
 80:      *
 81:      * @var int
 82:      */
 83:     public $email_use_phpMailer = 1;
 84:     /**
 85:      * รายชื่อภาษาที่รองรับ
 86:      * ตามที่มีในโฟลเดอร์ language/
 87:      * เริ่มต้นคือ en (ภาษาอังกฤษ)
 88:      *
 89:      * @var array
 90:      */
 91:     public $languages = array('th');
 92:     /**
 93:      * รายชื่อฟิลด์จากตารางสมาชิก สำหรับตรวจสอบการ login
 94:      *
 95:      * @var array
 96:      */
 97:     public $login_fields = array('username');
 98:     /**
 99:      * ทีอยู่อีเมลใช้เป็นผู้ส่งจดหมาย สำหรับจดหมายที่ไม่ต้องการตอบกลับ เช่น no-reply@domain.tld
100:      *
101:      * @var string
102:      */
103:     public $noreply_email = '';
104:     /**
105:      * คีย์สำหรับการเข้ารหัสข้อความ
106:      *
107:      * @var string
108:      */
109:     public $password_key = '1234567890';
110:     /**
111:      * template ที่กำลังใช้งานอยู่ (ชื่อโฟลเดอร์)
112:      *
113:      * @var string
114:      */
115:     public $skin = 'default';
116:     /**
117:      * ตั้งค่าเขตเวลาของ Server ให้ตรงกันกับเวลาท้องถิ่น
118:      * สำหรับ Server ที่อยู่ในประเทศไทยใช้ Asia/Bankok
119:      *
120:      * @var string
121:      */
122:     public $timezone = 'Asia/Bangkok';
123:     /**
124:      * คำอธิบายเกี่ยวกับเว็บไซต์
125:      *
126:      * @var string
127:      */
128:     public $web_description = 'PHP Framework พัฒนาโดยคนไทย';
129:     /**
130:      * ชื่อเว็บไซต์
131:      *
132:      * @var string
133:      */
134:     public $web_title = 'Kotchasan PHP Framework';
135:     /**
136:      * @var Singleton สำหรับเรียกใช้ class นี้เพียงครั้งเดียวเท่านั้น
137:      */
138:     private static $instance = null;
139: 
140:     /**
141:      * เรียกใช้งาน Class แบบสามารถเรียกได้ครั้งเดียวเท่านั้น
142:      *
143:      * @return \static
144:      */
145:     public static function create()
146:     {
147:         if (null === self::$instance) {
148:             self::$instance = new static();
149:         }
150:         return self::$instance;
151:     }
152: 
153:     /**
154:      * อ่านค่าตัวแปร และ แปลงผลลัพท์ตามชนิดของตัวแปรตามที่กำหนดโดย $default เช่น
155:      * $default = 0 หรือ เลขจำนวนเต็ม ผลลัพท์จะถูกแปลงเป็น int
156:      * $default = 0.0 หรือตัวเลขมีจุดทศนิยม จำนวนเงิน ผลลัพท์จะถูกแปลงเป็น double
157:      * $default = true หรือ false ผลลัพท์จะถูกแปลงเป็น true หรือ false เท่านั้น
158:      * คืนค่า ค่าตัวแปร $key ถ้าไม่พบคืนค่า $default
159:      *
160:      * @param string $key     ชื่อตัวแปร
161:      * @param mixed  $default (option) ค่าเริ่มต้นหากไม่พบตัวแปร
162:      *
163:      * @return mixed
164:      */
165:     public function get($key, $default = '')
166:     {
167:         if (isset($this->{$key})) {
168:             $result = $this->$key;
169:             if (is_float($default)) {
170:                 // จำนวนเงิน เช่น 0.0
171:                 $result = (float) $result;
172:             } elseif (is_int($default)) {
173:                 // เลขจำนวนเต็ม เช่น 0
174:                 $result = (int) $result;
175:             } elseif (is_bool($default)) {
176:                 // true, false
177:                 $result = (bool) $result;
178:             }
179:         } else {
180:             $result = $default;
181:         }
182:         return $result;
183:     }
184: 
185:     /**
186:      * โหลดไฟล์ config
187:      *
188:      * @param string $file ไฟล์ config (fullpath)
189:      *
190:      * @return object
191:      */
192:     public static function load($file)
193:     {
194:         $config = array();
195:         if (is_file($file)) {
196:             $config = include $file;
197:         }
198:         return (object) $config;
199:     }
200: 
201:     /**
202:      * บันทึกไฟล์ config ของโปรเจ็ค
203:      * คืนค่า true ถ้าสำเร็จ
204:      *
205:      * @param array  $config
206:      * @param string $file   ไฟล์ config (fullpath)
207:      *
208:      * @return bool
209:      */
210:     public static function save($config, $file)
211:     {
212:         $f = @fopen($file, 'wb');
213:         if ($f !== false) {
214:             if (!preg_match('/^.*\/([^\/]+)\.php?/', $file, $match)) {
215:                 $match[1] = 'config';
216:             }
217:             fwrite($f, '<'."?php\n/* $match[1].php */\nreturn ".var_export((array) $config, true).';');
218:             fclose($f);
219:             // หน่วงเวลาเล็กน้อย
220:             sleep(1);
221:             return true;
222:         } else {
223:             return false;
224:         }
225:     }
226: 
227:     /**
228:      * เรียกใช้งาน Class แบบสามารถเรียกได้ครั้งเดียวเท่านั้น
229:      *
230:      * @return \static
231:      */
232:     protected function __construct()
233:     {
234:         if (is_file(ROOT_PATH.'settings/config.php')) {
235:             $config = include ROOT_PATH.'settings/config.php';
236:             if (is_array($config)) {
237:                 foreach ($config as $key => $value) {
238:                     $this->{$key} = $value;
239:                 }
240:             }
241:         }
242:         if (ROOT_PATH != APP_PATH && is_file(APP_PATH.'settings/config.php')) {
243:             $config = include APP_PATH.'settings/config.php';
244:             if (is_array($config)) {
245:                 foreach ($config as $key => $value) {
246:                     $this->{$key} = $value;
247:                 }
248:             }
249:         }
250:     }
251: }
252: 
Kotchasan API documentation generated by ApiGen