{ "name": "league/uri", "type": "metapackage", "description" : "URI manipulation library", "keywords": [ "url", "uri", "rfc3986", "rfc3987", "psr-7", "parse_url", "http", "https", "ws", "ftp", "data-uri", "file-uri", "middleware", "parse_str", "query-string", "querystring", "hostname" ], "license": "MIT", "homepage": "http://uri.thephpleague.com", "authors": [ { "name" : "Ignace Nyamagana Butera", "email" : "nyamsprod@gmail.com", "homepage" : "https://nyamsprod.com"基本URL包含模式(或稱協定)、伺服器名稱(或IP位址)、路徑和檔案名,如「協定://授權/路徑?查詢」。完整的、帶有授權部分的普通統一資源標誌符語法看上去如下:協議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件後綴?參數=值#標誌
<?php namespace Dflydev\Canal\Analyzer; use Dflydev\Canal\Detector\DefaultDetectorFactory; use Dflydev\Canal\Detector\DetectorInterface; use Dflydev\Canal\InternetMediaType\DefaultInternetMediaTypeParserFactory; use Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface; use Dflydev\Canal\Metadata\Metadata; class Analyzer { private $detector; private $internetMediaTypeParser; public function __construct(DetectorInterface $detector = null) { if (null === $detector) { $detector = DefaultDetectorFactory::create(); } $this->detector = $detector; $this->internetMediaTypeParser = DefaultInternetMediaTypeParserFactory::create(); } public function setDetector(DetectorInterface $detector) { $this->detector = $detector; return $this; }檢視網路媒體類型的PHP庫是透過網站加碼形式,實現對網站全流量、用戶結構、訪問路徑、訪問內容、以及接入地點等關鍵指標進行深度追蹤的監測工具,真實地反映網站實際流量狀況以及網路使用者存取體驗狀況。
<?php namespace Overtrue\Pinyin; use InvalidArgumentException; define('PINYIN_NONE', 'none'); define('PINYIN_ASCII', 'ascii'); define('PINYIN_UNICODE', 'unicode'); class Pinyin { const NONE = 'none'; const ASCII = 'ascii'; const UNICODE = 'unicode'; protected $punctuations = array( ',' => ',', '。' => '.', '!' => '!', '?' => '?', ':' => ':', '“' => '"', '”' => '"', '‘' => "'", '’' => "'", );您不再為生僻的漢字不知道讀音而苦惱。轉換後的拼音,支援「複製」到系統剪貼簿,方便您貼上到目標位址;支援查詢多音字,收錄經典多音字句子;支援發音,所有文字發音,或點擊某個字發音。介面UI簡潔清爽,人性化體驗設計,使用便利舒適。
<?php namespace FastRoute; use PHPUnit\Framework\TestCase; class RouteCollectorTest extends TestCase { public function testShortcuts() { $r = new DummyRouteCollector(); $r->delete('/delete', 'delete'); $r->get('/get', 'get'); $r->head('/head', 'head'); $r->patch('/patch', 'patch'); $r->post('/post', 'post'); $r->put('/put', 'put'); $expected = [ ['DELETE', '/delete', 'delete'], ['GET', '/get', 'get'], ['HEAD', '/head', 'head'], ['PATCH', '/patch', 'patch'], ['POST', '/post', 'post'], ['PUT', '/put', 'put'], ]; $this->assertSame($expected, $r->routes); }路由(routing)是指分組從來源到目的地時,決定端對端路徑的網路範圍的進程[1] 。路由工作在OSI參考模型第三層-網路層的封包轉送設備。路由器透過轉送封包來實現網路互連。雖然路由器可以支援多種協定(如TCP/IP、IPX/SPX、AppleTalk等協定),但在我國絕大多數路由器執行TCP/IP協定。路由器通常連接兩個或多個由IP子網路或點到點協定標識的邏輯端口,至少擁有1個實體連接埠。路由器根據收到封包中的網路層位址以及路由器內部維護的路由表決定輸出連接埠以及下一跳位址,並且重寫連結層封包頭實現轉送封包。路由器透過動態維護路由表來反映目前的網路拓撲,並透過網路上其他路由器交換路由和連結資訊來維護路由表。
<?php namespace JasonGrimes; class Paginator { const NUM_PLACEHOLDER = '(:num)'; protected $totalItems; protected $numPages; protected $itemsPerPage; protected $currentPage; protected $urlPattern; protected $maxPagesToShow = 10; protected $previousText = 'Previous'; protected $nextText = 'Next'; /** * @param int $totalItems The total number of items. * @param int $itemsPerPage The number of items per page. * @param int $currentPage The current page number. * @param string $urlPattern A URL for each page, with (:num) as a placeholder for the page number. Ex. '/foo/page/(:num)' */ public function __construct($totalItems, $itemsPerPage, $currentPage, $urlPattern = '') { $this->totalItems = $totalItems; $this->itemsPerPage = $itemsPerPage; $this->currentPage = $currentPage; $this->urlPattern = $urlPattern; $this->updateNumPages(); }分頁 (pagination),即將一個頁面分成兩個或兩個以上的頁面。 有一個自動分頁機制,可以將行動 Web窗體中的內部容分割成一組群組較小的頁進行呈現,以適合於特定的裝置。此機制也呈現可用於瀏覽到其他頁面的使用者介面元素。無論你的NT伺服器的記憶體有多大,它總是顯得不夠充足。當實體RAM從低階開始運作時,Windows NT使用了分頁檔案Pagefile.sys。為了運行不同的進程和應用程序,Pagefile.sys為物理記憶體分配了一些空間。在這些空間內允許交換資料頁。顯然,系統在檔案系統快取中尋找資料而不是在磁碟機上搜尋資料會提高系統的效能。太多的搜尋操作會使處理器停頓下來。這就是為什麼短語“買更多的內存”成為電腦時代的陳詞濫調的原因之一:RAM是你的朋友。管理記憶體可使你的「朋友」更有效率。 Windows NT下的Windows Task Manager ([Ctrl][Alt][Delete] | Task Manager)是一個可以為存取記憶體使用情況提供快速重要資訊的察看工具。考慮實體記憶體的大小並計算MEM Usage計數器的值,Memory Usage History提供了記憶體活動的即時情況。把CPU Usage計數器和CPU Usage History與MEM Usage計數器一作比較,就可以簡單地得到效能的總和的評價。如果你必須決定是否要立刻啟動 Diskperf以進一步調查分頁過多問題那就非常便利了。 Windows NT的分頁檔案可以透過Control Panel |System | Performance 標籤| Virtual Memory進行管理。在這裡,你可以控制分頁檔案的幾個設定(包括大小和區域)。顯然,你可以允許系統對它進行處理,但為了獲得最佳配置還是使用Vitual Memory Manager (VMM)為好。 Windows NT分頁檔案的基本原則 Windows NT最初透過在實體RAM的數量上加上12MB以設定開始的分頁檔案大小。這12MB考慮到在系統故障時分頁檔案內容可傾倒到一個日誌中以防萬一。如果看見了「停止」框框和接著出現藍屏死機,你就在操作中遇到了這個問題。如果開始的分頁檔案的大小小於這個數(物理RAM的數量上加上12MB),就會開始收到Running Out Of Memory訊息。 Windows NT作業系統和其應用程式使用了約10MB的RAM。所以,應該從物理RAM的數量上減去這個值。這會給你充分的迴旋餘地決定你的伺服器的記憶體需求。 Windows NT要求分頁檔案的最小值為2MB。如果分頁檔案太小或根本不存在,啟動時就會出現警告訊息。 應該總是遵循RAM的最小值 12的規則。在任何情況下,分頁檔案都不能比伺服器中的RAM的大小小。如果系統有32 MB的實體RAM,加上12MB後分頁檔案總的大小就是44MB。顯然,分頁文件越大越好。意思是增加對實體RAM的投資,而不是簡單地增加分頁檔案的大小。如果沒有足夠的RAM,磁碟機就會花太多的時間對分頁檔案進行讀寫。這只會降低伺服器的速度,如果必須重新啟動伺服器來清除I/O請求,甚至會導致伺服器無法運作。而如果因為這個原因需要重啟機器,那麼可能就會有第二次。預設的12MB RAM足以在必要時清除分頁檔案的內容。小的分頁檔案限制了可以儲存的內容並且可能耗完為應用程式保留的虛擬記憶體。如果RAM不足,就會有更多的分頁,這反過來為驅動器增加了額外的負擔,從而降低了系統的響應速度。在這樣的情況下,Windows NT要求分頁檔案的最小值等於除了系統啟動時1MB虛擬記憶體之外的實體RAM的大小,以便能夠把偵錯資訊寫到一個檔案上。如前所述,分頁檔案的最大值和最小值在Virtual Memory對話方塊中指定。根據應用程序,分頁檔案會增大和縮小。當系統運作時,不能壓縮或維護分頁檔案。但是,使用各種第三方軟體套件如Diskeeper可對分頁檔案進行維護。
<?php use Sami\Sami; use Sami\Version\GitVersionCollection; $versions = GitVersionCollection::create(dirname(__FILE__) . '/src') ->add('master', 'master branch') ->addFromTags('1.*') ; return new Sami(dirname(__FILE__) . '/src', array('title' => 'Notificato API', 'build_dir' => dirname(__FILE__) . '/../notificato-apidocs/%version%', 'cache_dir' => dirname(__FILE__) . '/../notificato-apidocs/cache/%version%', 'versions' => $versions));所謂推送訊息,就是"web廣播",是透過一定的技術標準或協議,在互聯網上透過定期傳送使用者所需的資訊來減少資訊過載的一項新技術。推播技術透過自動傳送訊息給用戶,來減少用於網路上搜尋的時間。它根據用戶的興趣來搜尋、過濾訊息,並將其定期推給用戶,幫助用戶高效地發掘有價值的資訊。
<?php require_once dirname(__DIR__) . '/vendor/autoload.php'; call_user_func(function() { $loader = new \Composer\Autoload\ClassLoader(); $loader->add('Purl\Test', __DIR__); $loader->register(); });基本URL包含模式(或稱協定)、伺服器名稱(或IP位址)、路徑和檔案名,如「協定://授權/路徑?查詢」。完整的、帶有授權部分的普通統一資源標誌符語法看上去如下:協議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件後綴?參數=值#標誌
<?php require __DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php"; // import namespaces use Namshi\Notificator\Notification\Handler\Email as EmailHandler; use Namshi\Notificator\Manager; use Namshi\Notificator\Notification; use Namshi\Notificator\Notification\Email\EmailNotificationInterface; use Namshi\Notificator\Notification\Email\EmailNotification; use Namshi\Notificator\NotificationInterface; // create the handler class SimpleEmailHandler extends EmailHandler { public function handle(NotificationInterface $notification) { $to = implode(',', $notification->getRecipientAddresses()); mail($to, $notification->subject, $notification->body); } }輕量級框架是相對於重量級框架的一種程式設計模式。與重量級框架相比,解決問題的重點是不同的。 採用輕量級框架一方面因為盡可能的採用基於POJOs的方法進行開發,使應用不依賴於任何容器,這可以提高開發調試效率;另一方面輕量級框架多數是開源項目,開源社群提供了良好的設計和許多快速建置工具以及大量現成可供參考的開源程式碼,這有利於專案的快速開發。例如目前Tomcat Spring Hibernate已經成為許多開發者開發J2EE中小型企業應用偏好的一種架構選擇。
快取是指可以進行高速數據交換的記憶器,它先於記憶體與CPU交換數據,因此速率很快。 L1 Cache(一級快取)是CPU第一層快取。內建的L1快取的容量和結構對CPU的效能影響較大,不過高速緩衝記憶體皆由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32—256KB。 L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶片。內部的晶片二級快取運作速率與主頻相同,而外部的二級快取則只有主頻的一半。 L2快取容量也會影響CPU的效能,原則是越大越好,一般桌上型電腦CPU的L2快取一般為128KB到2MB或更高,筆記型電腦、伺服器和工作站上用CPU的L2快取最高可達1MB- 3MB。 快取只是記憶體中少部分資料的複製品,所以CPU到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時CPU還是會到記憶體去找數據,這樣系統的速率就慢下來了,不過CPU會把這些數據複製到快取中去,以便下次不要再到記憶體中去取。隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,又不頻繁了,所以說快取中的資料要經常依照一定的演算法來更換,這樣才能確保快取中的資料是被存取最頻繁的。 <?php namespace Cake\Cache; use Cake\Cache\Engine\NullEngine; use Cake\Core\ObjectRegistry; use Cake\Core\StaticConfigTrait; use InvalidArgumentException; use RuntimeException; class Cache { use StaticConfigTrait; protected static $_dsnClassMap = [ 'apc' => 'Cake\Cache\Engine\ApcEngine', 'file' => 'Cake\Cache\Engine\FileEngine', 'memcached' => 'Cake\Cache\Engine\MemcachedEngine', 'null' => 'Cake\Cache\Engine\NullEngine', 'redis' => 'Cake\Cache\Engine\RedisEngine', 'wincache' => 'Cake\Cache\Engine\WincacheEngine', 'xcache' => 'Cake\Cache\Engine\XcacheEngine', ]; protected static $_enabled = true; protected static $_groups = []; protected static $_registry; public static function getRegistry() { if (!static::$_registry) { static::$_registry = new CacheRegistry(); } return static::$_registry; }#
<?php namespace Sandbox; use Youshido\GraphQL\Execution\Processor; use Youshido\GraphQL\Schema\Schema; use Youshido\GraphQL\Type\Object\ObjectType; use Youshido\GraphQL\Type\Scalar\StringType; require_once __DIR__ . '/../../../../../vendor/autoload.php'; $processor = new Processor(new Schema([ 'query' => new ObjectType([ 'name' => 'RootQueryType', 'fields' => [ 'currentTime' => [ 'type' => new StringType(), 'resolve' => function () { return date('Y-m-d H:ia'); } ] ] ]) ])); $processor->processPayload('{ currentTime }'); echo json_encode($processor->getResponseData()) . "\n"; 1。快取的清空與更新,要盡量精確的去操作受到更新影響的對象,而不是全部搞掉。 在Hibernate當中,也提供了sessionFactory.evict(class, id)這樣細粒度的清空快取物件的方法。 sessionFactory.evice(class)的操作,要看這樣的作業是否頻繁,如果頻繁,對於快取的作用就會大大的折扣。 2。如果快取物件過多,對於失效的演算法與處理,要與業務物件的特性緊密的聯合起來,透過事件來驅動物件的失效。 3。對於商業物件的緩存,必須要深刻分析物件的生命週期,業務特性。 4。對於數據不一致的風險,要有足夠的認識與預防手段。 5。合理的估計訂單物件的大小,分配足夠的記憶體 6。如果只使用中心緩存,只能減小資料庫的壓力,對於網路頻寬的壓力,還是有的,速度上也遠遠遜於本地快取的效果,所以要結合本地快取+中心快取的策略方案,即提高速度,避免群集複製時的瓶頸。
<?php namespace Doctrine\Common\Cache; class ApcCache extends CacheProvider { protected function doFetch($id) { return apc_fetch($id); } protected function doContains($id) { return apc_exists($id); } protected function doSave($id, $data, $lifeTime = 0) { return apc_store($id, $data, $lifeTime); } protected function doDelete($id) { // apc_delete returns false if the id does not exist return apc_delete($id) || ! apc_exists($id); } protected function doFlush() { return apc_clear_cache() && apc_clear_cache('user'); } protected function doFetchMultiple(array $keys) { return apc_fetch($keys) ?: []; } protected function doSaveMultiple(array $keysAndValues, $lifetime = 0) { $result = apc_store($keysAndValues, null, $lifetime); return empty($result); }快取是指可以進行高速數據交換的記憶體,它先於記憶體與CPU交換數據,因此速率很快。 L1 Cache(一級快取)是CPU第一層快取。內建的L1快取的容量和結構對CPU的效能影響較大,不過高速緩衝記憶體皆由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般L1緩存的容量通常在32—256KB。 L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶片。內部的晶片二級快取運作速率與主頻相同,而外部的二級快取則只有主頻的一半。 L2快取容量也會影響CPU的效能,原則是越大越好,一般桌上型電腦CPU的L2快取一般為128KB到2MB或更高,筆記型電腦、伺服器和工作站上用CPU的L2快取最高可達1MB- 3MB。 快取只是記憶體中少部分資料的複製品,所以CPU到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時CPU還是會到記憶體去找數據,這樣系統的速率就慢下來了,不過CPU會把這些數據複製到快取中去,以便下次不要再到記憶體中去取。隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,又不頻繁了,所以說快取中的資料要經常依照一定的演算法來更換,這樣才能確保快取中的資料是被存取最頻繁的。
iso,國際標準光碟檔案系統格式。符合ISO 9660標準的光碟鏡像檔格式,檔案副檔名通常為iso。這種文件可以簡單的理解為複製光碟上全部資訊而形成的鏡像檔。 ZIP,是一個檔案的壓縮的演算法,原名Deflate(真空),發明者為菲利普·卡茲(Phil Katz)),他於1989年1月公佈了該格式的資料。 ZIP通常使用後綴名“.zip”,它的MIME格式為 application/zip 。目前,ZIP格式屬於幾種主流的壓縮格式之一,其競爭者包括RAR格式以及開放原始碼的7-Zip格式。從效能比較,RAR格式較ZIP格式壓縮率較高,但它的壓縮時間遠高於Zip。而7-Zip(7z)由於提供了免費的壓縮工具而逐漸在更多的領域得到應用。 <?php setlocale(LC_ALL, 'fr_FR'); $vendorDir = __DIR__ . '/../vendor'; if (!@include $vendorDir . '/autoload.php') { die("You must set up the project dependencies, run the following commands: wget http://getcomposer.org/composer.phar php composer.phar install "); } $loader = include $vendorDir . '/autoload.php'; $loader->add('IsoCodes\Tests', __DIR__);#