AgiCore-WebLib

    • Release

    Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

      AgiCore-WebLib


      Vorwort:
      Sämtliche meiner releas'ten (geiles denglisch) Sachen wurden aus dem Grund gelöscht, weil ich, und evtl auch einige andere, es unnötig fanden für jedes Script ein eigenes Thema zu erstellen, obwohl nur, oder noch nicht mal, eine Hand voll der User etwas damit anfangen konnten. Obwohl Webentwicklung in diesem Forum nur eine Nebenrolle spielt möchte ich dennoch diese und später weitere hier weiterhin veröffentlichen. So unbrauchbar manches im ersten Moment auch scheinen mag, wer nach einer Lösung für ein spezifisches problem sucht und sie hier findet wird sich sicherleich freuen. Dieses Paket aus Libraries wird in ferner Zukunft sowohl PHP, als auch JS Scripte enthalten. Unter anderem die damals bereits veröffentlichten Projekte "FragmentCollection", "HexagonalMath", sowie auch das Projekt zum arbeiten mit Matricen und Vectoren aus dem ich mir die Kritik des damaligen Threads zu Herzen genommen habe. Desweiteren habe ich vor sämtliche bereits verloren gegangenen Projekte von mir aus meinen Erinnerungen neu zu starten. Das wären unter anderem "Scrolling", "Windows", "Fading" und "Teasers", "Lines", Klassen für bestimme Einsatzgebiete für JavaScript, als auch "DrawX", ein derzeitiges Nebenprojekt für PHP das auf das Projekt mit Matricen/Vectoren aufbaut und eine Art Engine bereitstellt zum Erstellen, und Rendern von 2D und 3D Bildern - mit PHP.


      Wofür ist diese Library?
      Diese Library ersetzt fehlende oder erweitert existierende Funktionalitäten für PHP und JavaScript. Sie mögen nicht die ersten oder besten Erweiterungen oder Workarounds sein, allerdings sind diese, da sie von mir selbst erstellt wurden, für mich am besten wart- und erweiterbar. Meine Spezialgebiete sind aussergewöhnliche Problemstellungen oder Algorithmen, was diese Library im Verlauf der Entwicklung widerspiegeln wird.


      Anforderungen:
      - Webserver mit PHP >= 5.3 wird empfohlen. Erstellt wurde mit PHP 5.4.7
      - Für einige wenige PHP Funktionen wird Socket-Unterstützung benötigt


      Downloads:
      WebLib ist absofort auf GitHub verfügbar.
      Latest: [Revision 4] (28.10.2013 17:30)
      Older: [Rev 1] [Rev 2] [Rev 3]



      Derzeit in Arbeit:
      AgiCore.PHP.OOP.Extender - Add config-property BREAK_EXTENDING
      AgiCore.PHP.DrawX


      Warteliste
      • [JS] Funktion zum Anzeigen von Linien mittels des IMG-Resize-Nebeneffekt's (Aus Erinnerungen)
      • [PHP] Klasse die festgelegten Zugriff auf eine Datenbank zB via GET oder POST ermöglicht (Aus Erinnerungen)
      • [JS/PHP] Klasse(n) zum Erstellen von eigenen interaktiven BB-Codes + dazugehörige Funktionen für Editoren (Aus Erinnerungen)



      Lizenz

      Quellcode

      1. * This program is free software: you can redistribute it and/or
      2. * modify it under the terms of the GNU General Public License as
      3. * published by the Free Software Foundation, either version 3 of
      4. * the License, or (at your option) any later version.
      5. *
      6. * This program is distributed in the hope that it will be useful,
      7. * but WITHOUT ANY WARRANTY; without even the implied warranty of
      8. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      9. * GNU General Public License for more details.
      10. *
      11. * You should have received a copy of the GNU General Public License
      12. * along with this program. If not, see <http://www.gnu.org/licenses/>.
      13. *
      14. * ABOUT PHP:
      15. *
      16. * PHP 4 and PHP 5 are distributed under the PHP License v3.01,
      17. * copyright (c) the PHP Group.
      18. *
      19. * The word "PHP" inside of "AgiCore.PHP" is only used to make clear
      20. * that this library contains only PHP scripts. So the PHP Group
      21. * got nothing to do with this script.
      22. *
      23. * LAST REQUEST:
      24. *
      25. * It would make me happy if this script will be used by someone. But
      26. * I can't be happy if I doesn't witness the Usuage of this script.
      27. * So it would make me happy to hear from you that you are happy to
      28. * use this script so I can be happy that this script is happy to be
      29. * with you. In normal words:
      30. * You are welcome to let me know that you're using this script.

      ChangeLog

      Quellcode

      1. Revision 1
      2. - Function "AgiCore\PHP\Exit404" Version 0.1.0 released.
      3. - Function "AgiCore\PHP\RaiseError" Version 0.1.0 released.
      4. Revision 2
      5. - Renamed "AgiCore\PHP\RaiseError" to "AgiCore\PHP\raise_error".
      6. - Renamed "AgiCore\PHP\Exit404" to "AgiCore\PHP\exit404".
      7. - Lib "AgiCore\PHP\OOP\Extending" Version 0.4.0 released.
      8. Revision 3
      9. - Class "AgiCore\PHP\OOP\Convert\Base64Encoder" Version 0.2.0 released.
      10. - Class "AgiCore\PHP\OOP\Convert\Base64Decoder" Version 0.1.0 released.
      11. - Fixed "Indirect array call" error in "AgiCore\PHP\OOP\Extending".
      12. - Updated whole lib "AgiCore\PHP\OOP\Extending" - fixed several issues.
      13. - Lib "AgiCore\PHP\OOP\Overloading" Version 0.2.0 released.
      14. Revision 4
      15. - AgiCore\PHP\OOP\Overloading
      16. - - Invoking variable function now returns reference.
      17. - - Function createFunction() now returns created function.
      18. - - Fixed creating functions with zero arguments.
      19. - - Added support for using $this inside overloaded functions.
      20. - AgiCore\PHP\OOP\ObjectOperator
      21. - - Version 0.1.0 released.
      Dateien

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Agita“ ()

      Sieht interessant aus.

      Ich kann mir durchaus vorstellen,
      dass diese library einen großen Nutzen hat wenn sie noch weiter verbessert wird.
      [Revision 2]

      So ... die Extending-Lib ist fürs erste fertig.
      Was macht sie ? Mit ihr sind Friend-Properties kein Traum mehr. Was muss gemacht werden ? Die unterste Klasse (Letztes parent) muss die Klasse "ExtendedClass" einbinden (via extends). Mit der Property EXTENDED_PROPERTIES können den anderen Properties zusätzliche Eigenschaften gegeben werden. Sobald ein Object instanziert wird, werden alle Geltungsbereiche des Objektes und deren Properties gelesen, referenziert und als eine Art Abbild gespeichert. Neben der vermissten friend-Funktionalität können Properties auch als hidden oder callable deklariert werden.
      Beispiel-Dateien wurden erweitert.

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Agita“ ()

      [Revision 3]

      Lib "Extending" (zum Erweitern von Klassen) wurde komplett überarbeitet um diverse Fehler zu beheben.
      "Base64Encoder" und "Base64Decoder" ermöglichen das Konvertieren in Chunks.
      "Overloading" ermöglicht das Erstellen von überladbaren Variable-Funktionen.

      Im Download sind zwar bereits einige Beispieldateien dabei, aber dort ist noch nicht alles an Möglichkeiten zu finden. Wenn jemand wissen möchte wie er eine Funktion/Klasse benutzt und/oder was wofür gut ist, dann einfach fragen. Da dies meine eigene Lib ist, und noch dazu die erste die ich veröffentliche, weiß ick nich wie ich alle Sachen aus der Lib für alle am verständlichsten erklären soll =/

      LG Agi =)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agita“ ()

      [Revision 4]

      Fehler beim erstellen einer überladbaren Funktion mit 0 Argumenten behoben.

      In überladbaren Funktionen kann nun auch auf die Variable $this zugegriffen werden. Mehr dazu in der Beispieldatei.
      Spoiler anzeigen

      PHP-Quellcode

      1. require_once('classes/AgiCore.PHP.OOP.Overloading.php');
      2. use AgiCore\PHP\OOP\Overloading;
      3. require_once('classes/AgiCore.PHP.OOP.Extending.php');
      4. use AgiCore\PHP\OOP\ExtendedClass;
      5. // create the overloadable function
      6. Overloading::createFunction('THISTEST',
      7. array(
      8. // just a simple function with no arguments
      9. '' =>
      10. function()
      11. {
      12. // this function works like within objects
      13. echo "{$this->text}<br>";
      14. }
      15. )
      16. );
      17. class myClass1 extends ExtendedClass
      18. {
      19. // set the property $myMethod to be callable like functions
      20. private $EXTENDED_PROPERTIES = array('myMethod' => X_CALLABLE);
      21. public $myMethod;
      22. // this text we wanna output
      23. private $text = "Hello World 1";
      24. public function __construct()
      25. {
      26. // look at the new 2nd argument
      27. // this one tells to bind the overloaded function to this object
      28. $this->myMethod = Overloading::getFunction('THISTEST', $this);
      29. // and dont forget to forward to parent class
      30. parent::__construct();
      31. }
      32. }
      33. // initiiate
      34. $myObject1 = new myClass1();
      35. // this works because functions are bound to object
      36. $myObject1->myMethod();

      Neu: Workaround für selbstdefinierbare Operatoren
      Spoiler anzeigen

      PHP-Quellcode

      1. // our example class
      2. class Vector2 extends ObjectOperator
      3. {
      4. private $EXTENDED_PROPERTIES = array('X' => X_NONE, 'Y' => X_NONE);
      5. public $X = 0;
      6. public $Y = 0;
      7. public function __construct($x=0, $y=0)
      8. {
      9. $this->X = $x;
      10. $this->Y = $y;
      11. parent::__construct();
      12. }
      13. }
      14. Vector2::addOperator("+=",
      15. array(
      16. 'number' =>
      17. function($v)
      18. {
      19. $this->X += $v;
      20. $this->Y += $v;
      21. },
      22. 'number, number' =>
      23. function($x, $y)
      24. {
      25. $this->X += $x;
      26. $this->Y += $y;
      27. },
      28. 'class(Vector2)' =>
      29. function($v)
      30. {
      31. $this->X += $v->X;
      32. $this->Y += $v->Y;
      33. },
      34. )
      35. );
      36. $v = new Vector2(1,1);
      37. echo "<pre>";
      38. $v['+=']($v);
      39. print_r($v);
      40. $v['+='](1);
      41. print_r($v);
      42. $v['+='](1000, 5000);
      43. print_r($v);
      44. echo "</pre>";


      So, nun werd ich diesen Thread ersma nich mehr weiter push-spammen und kümmer mich nun um die 2d und 3d sachen *,*

      Changelog

      Revision 4
      - AgiCore\PHP\OOP\Overloading
      - - Invoking variable function now returns reference.
      - - Function createFunction() now returns created function.
      - - Fixed creating functions with zero arguments.
      - - Added support for using $this inside overloaded functions.
      - AgiCore\PHP\OOP\ObjectOperator
      - - Version 0.1.0 released.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Agita“ ()

      fogendes darf gerne geklickt und getestet werden =) trau dich
      grund ist, dass ich nicht alle versionen von browsern installieren kann. vielleicht findet sich ja wer mit nem exoten der bei dem script probleme macht.
      was ist zu sehen? ein mandala, dessen linien mit javascript erstellt wurden, ABER NICHT pixel für pixel wie es mindestens 50% anderer scripte machen.

      LG und noch ne angenehme gute Nacht
      Bilder
      • so-sollte-es-aussehen.png

        64,51 kB, 461×465, 203 mal angesehen
      Hi Agita
      Ich hab mich "getraut" allerdings passiert nix.
      Also einfach weißer Bildschirm.
      Kein SkriptBlock oder ähnliches installiert.
      Allerdings in nem Firmen Netz, könnte sein das da was geblockt wird von dem ich nix weiß.
      Ich teste es heute abend mal daheim.

      Browser= Portable SRWare Iron (Version 29.0.1600.1 (220100))
      There is no CLOUD - just other people's computers

      Q: Why do JAVA developers wear glasses?
      A: Because they can't C#

      Daily prayer:
      "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

      Brainfuck-Quellcode

      1. Allgemeine Informationen
      2. ------------------------
      3. Name: Firefox
      4. Version: 24.0
      5. User-Agent: [...]
      6. Erweiterungen
      7. -------------
      8. Name: Adblock Edge
      9. Version: 2.0.7
      10. Aktiviert: true
      11. Name: Adblock Plus
      12. Version: 2.4
      13. Aktiviert: true
      14. Name: Download Statusbar
      15. Version: 0.9.10
      16. Aktiviert: true
      17. Name: Firebug
      18. Version: 1.12.4
      19. Aktiviert: true
      20. Name: HackTheWeb
      21. Version: 1.3.20
      22. Aktiviert: true
      23. Name: RightToClick
      24. Version: 2.9.5
      25. Aktiviert: true
      26. Name: Stylish
      27. Version: 1.3.3
      28. Aktiviert: true
      29. Name: Thumbnail Zoom Plus
      30. Version: 2.6
      31. Aktiviert: true
      32. Name: Web Developer
      33. Version: 1.2.5
      34. Aktiviert: true
      35. Name: SettingSanity
      36. Version: 0.5.20131011
      37. Aktiviert: false


      Funktioniert einwandfrei
      Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.


      Ich konnte dir helfen?
      - Das ist schön :) Ich würde mich über ein "Hilfreich" freuen ^^
      darauf habe ich keinen einfluss, da der browser fürs zeichnen zuständig ist. das script greift lediglich auf die neuen (naja gibs schon länger) transformations-css-sachen zurück. grob gesagt ich erstelle lediglich ein div und lasse das rotieren. dazu noch 2 divs als container drumherum, ein paar beerechnungen und wir haben eine sauber und effiziente variante um in javascript linien zu zeichnen =)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agita“ ()

      werd mich nun ersma um eine ordentliche api-doku in form von einer html datei bemühen damit man überhaupt die struktur der gesammten lib erkennt und weiß was man womit alles machen kann :huh:
      wer bissl lust hat in meinen dev files zu stöbern... hab sie mal angehangen
      Dateien

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agita“ ()