องค์ประกอบพื้นฐานในการรวม Sencha Ext JS เข้ากับแอปพลิเคชัน PHP
ไลบรารีนี้นำเสนอสิ่งที่เป็นนามธรรมอย่างง่าย ๆ เกี่ยวกับข้อกำหนดที่แตกต่างกันเมื่อรันแอปพลิเคชัน Sencha Ext JS 6 (แม้ว่า 5 ควรจะทำงานเช่นกัน) จากบริบทการพัฒนาและการใช้งานจริงโดยใช้เพจที่สร้างโดยเซิร์ฟเวอร์ รุ่นการพัฒนาและการผลิตใช้แผนผังต้นทางที่แตกต่างกันเพื่อให้บริการไฟล์แอปพลิเคชัน กระบวนการนี้ขึ้นอยู่กับสิ่งที่เรียกว่า manifest และ micro-loader ของ Javascript เพื่อให้แน่ใจว่ากระบวนการนี้ทำงานได้อย่างราบรื่นกับเพจและการกำหนดเส้นทางที่สร้างโดยเซิร์ฟเวอร์ ไลบรารีจะเชื่อมต่อกับการสร้างรายการและปรับเปลี่ยนรายการแบบไดนามิกตามสภาพแวดล้อมและบริบทที่ต้องการ
ปัจจุบันไลบรารีนี้ใช้เป็นรากฐานของ teqneers/ext-application-bundle ซึ่งเป็นชุด Symfony ที่รวม Ext JS เข้ากับแอปพลิเคชันที่ใช้ Symfony เท่านั้น เราไม่ได้พยายามใช้ไลบรารีเป็นส่วนประกอบแบบสแตนด์อโลนหรือในบริบทอื่นใดนอกเหนือจากสภาพแวดล้อม Symfony ดังนั้นต่อไปนี้เป็นเพียงวิธีการทำงานตามทฤษฎีโดยไม่ต้องใช้บันเดิลเท่านั้น เราขอขอบคุณสำหรับความช่วยเหลือและการสนับสนุนเพื่อทำให้ห้องสมุดมีประโยชน์มากขึ้นนอกเหนือจากชุดรวม
คุณสามารถติดตั้งไลบรารีนี้โดยใช้ผู้แต่ง
composer require teqneers/ext-application
หรือเพิ่มแพ็กเกจลงในไฟล์ composer.json ของคุณโดยตรง
รับโครงสร้างไดเร็กทอรีต่อไปนี้ของแอปพลิเคชันสมมติ
./
|-- src/ Application source code
|-- htdocs/ Public web-facing directory (document root)
| |-- index.php PHP front controller
| |-- app/ Root folder for Ext JS application production build
|-- my-app/ The Ext JS application source folder (sencha generate app -ext MyApp ./my-app)
คุณควรกำหนดค่าแอปพลิเคชันของคุณ (เช่นจาก index.php)
$ config = TQ ExtJS Application Configuration ApplicationConfiguration (
__DIR__ . ' /../my-app ' , // the absolute path to the Ext JS application workspace
' ../my-app ' , // the relative path from the public web-facing directory to the Ext JS application workspace
__DIR__ , // the absolute path to the public web-facing directory
' / ' // the relative path from the public web-facing directory to the root directory used for production build artifacts (usually /)
);
// add a default build
$ config -> addBuild (
' default ' , // the build name (just for referencing the build)
' / ' , // the application path relative to the Ext JS application workspace (usually / unless you have multiple applications and/or packages in a single workspace)
' app ' , // the application path relative to the root directory used for production build artifacts
' manifest.json ' , // the build manifest filename for development builds
' bootstrap.js ' , // the micro-loader filename for development builds
null , // the application cache manifest filename for development builds (usually NULL)
' bootstrap.json ' , // the build manifest filename for production builds
' bootstrap.js ' , // the micro-loader filename for production builds
' cache.appcache ' // the application cache manifest filename fro production builds
);
$ application = new TQ ExtJS Application Application (
$ config ,
new TQ ExtJS Application Manifest ManifestLoader (),
' dev ' // dev or prod depending on wether you want to run from development or drom production build
);
$ microLoader = $ application -> getMicroLoaderFile (); // returns a SplFileInfo for the configured micro-loader
$ hasAppCache = $ application -> hasAppCache ();
if ( $ hasAppCache ) {
$ appCache = $ application -> getAppCacheFile (); // returns a SplFileInfo for the configured application cache manifest
}
$ manifest = $ application -> getManifest ( ' /htdocs ' ); // returns a TQExtJSApplicationManifestManifest configured correctly when running document root on your application base path
echo $ manifest ; // outputs the manifest
เมื่อเรียกใช้แอปพลิเคชันในโหมดการพัฒนา คุณต้องตรวจสอบให้แน่ใจว่ารูทเอกสารของเว็บเซิร์ฟเวอร์ของคุณนั้นเพิ่มขึ้นหนึ่งระดับจากไดเร็กทอรีสาธารณะ (ปกติ) ที่เชื่อมต่อกับเว็บ เพื่อให้เว็บเซิร์ฟเวอร์สามารถให้บริการไฟล์จากพื้นที่ทำงานของแอปพลิเคชัน Ext JS ได้เช่นกัน
ใบอนุญาต MIT (MIT)
ลิขสิทธิ์ (c) 2021 TEQneers GmbH & Co. KG
อนุญาตให้บุคคลใดก็ตามที่ได้รับสำเนาของซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") อนุญาตโดยไม่เสียค่าใช้จ่าย เพื่อจัดการกับซอฟต์แวร์โดยไม่มีข้อจำกัด รวมถึงแต่ไม่จำกัดเพียงสิทธิ์ในการใช้ คัดลอก ปรับเปลี่ยน ผสาน เผยแพร่ แจกจ่าย ให้อนุญาตช่วง และ/หรือขายสำเนาของซอฟต์แวร์ และอนุญาตให้บุคคลที่ได้รับซอฟต์แวร์นี้สามารถทำได้ ภายใต้เงื่อนไขต่อไปนี้:
ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์นี้มีให้ "ตามที่เป็น" โดยไม่มีการรับประกันใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันความสามารถในการค้าขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดต่อการเรียกร้องค่าเสียหายหรือความรับผิดอื่นใดไม่ว่าในการกระทำของสัญญาการละเมิดหรืออย่างอื่นที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือข้อตกลงอื่น ๆ ใน ซอฟต์แวร์.