Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 18:16
    howardyo starred peachpiecompiler/peachpie
  • 15:58
    adamdriscoll starred peachpiecompiler/peachpie
  • 14:08

    jakubmisek on master

    emitting less overloads when un… (compare)

  • Nov 11 23:02
    sergiocabral starred peachpiecompiler/peachpie
  • Nov 11 22:22

    jakubmisek on v0.9.600

    (compare)

  • Nov 11 21:17

    jakubmisek on master

    updated pcre to 1.1.0 (compare)

  • Nov 10 19:18
    InquisitiveQuail starred peachpiecompiler/peachpie
  • Nov 10 13:39

    jakubmisek on master

    pcre notes (compare)

  • Nov 09 15:47

    jakubmisek on master

    diagnostic of $this in non-stat… (compare)

  • Nov 09 15:36

    jakubmisek on master

    diagnostic of $this when use ou… (compare)

  • Nov 08 16:09

    jakubmisek on master

    diagnostic for invalid constant… (compare)

  • Nov 08 13:01
    jakubmisek closed #576
  • Nov 08 13:01
    jakubmisek commented #576
  • Nov 08 13:01

    jakubmisek on master

    test for dynamic invocation wit… (compare)

  • Nov 08 12:58

    jakubmisek on master

    correct dynamic call with defau… (compare)

  • Nov 08 12:57
    jakubmisek commented #576
  • Nov 07 18:10
    jakubmisek milestoned #576
  • Nov 07 18:10
    jakubmisek labeled #576
  • Nov 07 17:59
    crbrz opened #576
Jakub Míšek
@jakubmisek
@calvinbaart thanks! working on it
Jakub Míšek
@jakubmisek
@calvinbaart as I see the most recent issue is the __destruct() being called (in .NET by the Garbage Collection) and crashes
Calvin Baart
@calvinbaart
@jakubmisek Yea, I think its happening because the __destruct is not called deterministically. I think the destruct is called after laravel resets itself for the next test and then fails because its not in the state the original test expected, I'll keep looking into this to see if this is actually the case though (I can't really reproduce this easily, I'll probably disable the __destruct for now)
Calvin Baart
@calvinbaart
New assertion! https://travis-ci.com/calvinbaart/laravel-peachpie-sample/builds/128627715 Debug mode is a goldmine I guess.... :)
I'm not really sure how to report these since I can't get any of them to reproduce reliably outside of the unit test
Christopher Pereira
@kripper
Hi, how can I set global PHP variables for my web app from .cs ?
Christopher Pereira
@kripper
I found something about 'BeforeRequest'...will try
Christopher Pereira
@kripper
got it working
Christopher Pereira
@kripper
Hi, I'm stuck: require_once() is not working, altough the file was compiled
is ini_set('include_path', ...) working?
do I have to tell peachpie the root path?
Christopher Pereira
@kripper
The error says: working directory is ''
do we need to set the working directory in order to require_once() to work?
@jakubmisek any hint?
Christopher Pereira
@kripper
I think I found out how peachpie looks for the files to be included
it seems like we should always use relative paths
Christopher Pereira
@kripper
I compiled a file with <Compile Include="../modules/...
it seems like this is not supported
Jakub Míšek
@jakubmisek
@calvinbaart the assertion is a good one, will take a look. Caused by setting a value which was not de-referended by the compiler
@kripper yes the root path is crucial, see PhpRequestOptions, if not set, current working directory is used which works in most cases
Jakub Míšek
@jakubmisek

For a reference,

<Compile Include="../modules/...

is handled by MSBuild. both relative paths and absolute paths are supported. Note you can only compile files within your project folder.

Jakub Míšek
@jakubmisek
@calvinbaart the __destruct() thing - maybe we should not call it if __destruct() was already called from within the code? we might also temporarily disable the destructors if it causes compatibility issues
Calvin Baart
@calvinbaart
I don't think it has been called from the code before. I placed a log inside the destruct and its only called once (after the finalizer). I think it only causes stability issues in unit test scenarios because the test scope is pretty important for that (For example Laravel tends to destroy and completely rebuild the application after every test case to make sure the tests begin clean, I can imagine this causes issues with __destruct not being called deterministically)
unit test-like scenarios*

The following psuedo-code is what happens as far as I can tell:

SetupLaravelApplication();
{ // create new scope
    $obj = new Command();
}
DestroyLaravelApplication();

In PHP $obj is destroyed at the end of the scope, in C# its destroyed whenever (and from another thread (the finalizer thread)?) so that causes some problems

Jakub Míšek
@jakubmisek
that makes sense ... currently I have no idea how to "workaround" it, probably we should not create the Finalizer at all, only the IDisposable and implement something that would wrap the use of a local variable within a using block
so in the example above, we would actually emit a code similar to this:
SetupLaravelApplication();
try { obj = new Command(); }
finally { obj?.Dispose(); }
DestroyLaravelApplication();
BTW sadly, PHP does not have code scopes, only local and global. So it destroys its local variables on the very end of the function block (as I remember)
Calvin Baart
@calvinbaart
Just wrote some test code and BTW sadly, PHP does not have code scopes, only local and global. So it destroys its local variables on the very end of the function block (as I remember) seems to be correct. It only calls destruct at the end of the function (or when I dereference the last value, for example $obj = new TestClass(); $obj = new TestClass2();, TestClass destruct will be called here)
Jakub Míšek
@jakubmisek
Seems correct, we can keep track of a few simple cases and call __destruct() (or Dispose in our case) like PHP does. Then we'd add some assertions so we'll be notified if __destruct was not called so implementor (you and us) would know there might be an issue.
latest commit disables finalizers
Daniel Llewellyn
@diddledan
You may remember ages back I mentioned that adding the code-based AppInsights thing from azure to a wpdotnet was causing exceptions to fire. I finally took some time to figure it out - it's in the WPdotnet cache mechanism which saves the headers of the response when adding to the cache and then tries to re-add those headers in a cached response. The response therefore tries to add a second Request-Context header because AppInsights adds one to every response before wpdotnet then adds the one from the original caching request
I worked around it by adding an if (header.Key != "Request-Context") {} around the re-adding mechanism when serving a cached response
it might be better to not cache the header in the first place rather than avoiding it when emitting the cached responses
        async Task WriteResponse(HttpContext context, CachedPage page)
        {
            foreach (var header in page.Headers)
            {
                if (header.Key != "Request-Context")
                {
                    context.Response.Headers.Add(header);
                }
            }

            await context.Response.Body.WriteAsync(page.Content, 0, page.Content.Length);
        }
^^^^ From my edited copy of PeachPied.WordPress.AspNetCore/Internal/WpResponseCaching.cs
LORDofDOOM
@_LORDofDOOM__twitter

Hi Guys,

first of all, it's a really great project and I'm already able to build wordpress with some plugins :-) Just some questions (i hope this is OK in this chatroom):

  • Is there any option to compile wordpress plugins directly from the wordpress folder (like themes, without create a separate plugin and reference it), the idea here is that I want to be able to create a compiled assembly from a "normal" Wordpress installation and check if plugins will work) ? I've tried to simply copy some plugins to that folder, it also seems to get compiled but I dont see them in installed plugins.

  • You write in the Wiki that e.g. elementor is supported, I've also get it compiled but it dont run in debug mode (throw exceptions because of Logging) and in release mode it runs but I'm not able to use it (type error on save) - Did you manage this plugin differently (in terms of compiling), and if so, is there any repository for it ?

Jakub Míšek
@jakubmisek
@diddledan thanks! I'm not aware of AppInsights but we should definitely not cache certain headers
Jakub Míšek
@jakubmisek

@_LORDofDOOM__twitter

BTW that's why we have prepared https://github.com/iolevel/peachpie-wordpress where you use already compiled wordpress and just add your plugins and themes. The project is ready for that.

  • do you have a link to the wiki? you might be right that we tested it in release only, or we have had an older release
Benjamin Fistein
@bfistein
@jakubmisek he's referring to this. We briefly tested it, made sure it compiles and randomly clicked through it, so it's possible a newer release ir something specific doesn't work
LORDofDOOM
@_LORDofDOOM__twitter

@jakubmisek Thanks you for your fast answer :-)

My question was more like if I'm able to compile a already prepared wordpress installation.

So if I recompile and have plugins into https://github.com/iolevel/wpdotnet-sdk/tree/master/wordpress/wp-content/plugins folder netcore will compile this files. Possibly I'm wrong, but if I copy files to the https://github.com/iolevel/wpdotnet-sdk/tree/master/wordpress/wp-content/themes folder the functions of the theme are working as expected, so in it's base thats the same thing as for a plugin, but the plugins dont get recognized (but they are getting compiled and also copy as content in output folder, so they should work). This would be pretty helpful to just try out some plugins without the creation of a external assembly and even to resolve references between plugins, so this is my next question :-)

I'm also not really sure how cross references are currently handled. If for example a plugin check if woocommerce exists and want to include it to show different options, is this handled ? Because on compile time it should not know about the existence of woocommerce. Or do I need to add additional reference into the plugin to woocommerce ?

Yes, I've read the Wiki and I've tried to compile elementor in release and debug mode (multiple versions, also the newest one 2.7.3), in debug mode it compile but throw exceptions because of missing classes (seems to be something in Logger class) and in release mode it loads normally but I cant add e.g. a image (type error on aspnetcore side on save)

Benjamin Fistein
@bfistein

@_LORDofDOOM__twitter regarding the bugs with Elementor - that's totally possible, lots of things have changed in PeachPie since we last tested it and who knows what changed in Elementor itself. I definitely didn't get an exception back when I tried about missing classes, so they might have added something. It would be really great if you could submit these exceptions in issues with some detailed info (stack trace, how to reproduce or something like that) and we'll take a look at them. The adding an image definitely sounds like a bug on our side.

Regarding the first part of your question, I'll leave that up to @jakubmisek .

Saadi Shamsaee
@Saadi6688_twitter
Hi. When the 2 bugs i reported will be fixed? Customify theme & Persian Calendar plugin. is there any wp.net daily(or weekly) changelog in your websites?
some Windows server Hosts don't support MySQL. is there a possibility to use SQL Server for WP.NET? SQL Server performance is lower than MySQL? is it true?
Benjamin Fistein
@bfistein
@Saadi6688_twitter we don't have a timeline for those issues, they are not our priority. Feel free to contribute to this open source project by fixing them or maybe someone from the community will. There is no changelog, but you can see the list of commits as well as the release notes.
Saadi Shamsaee
@Saadi6688_twitter
Hi Jakub. This bug seems to have been fixed. Can you publish the revised version of wordpressdotnet? thank you. iolevel/wpdotnet-sdk#41
however, i posted a new bug on the above bug page. is that fixed?
Saadi Shamsaee
@Saadi6688_twitter
the edit files bug...
And a question: Is it possible to automatically update WordPress under .NET after every WordPress update under Php? how is it possible? No need to recompile?
Dave Hutton
@davehutton
Hi all, awesome project so far! I'm incorporating peachpie / wordpress into my existing asp.net core 2.2 app. I'm working with the sample app atm (https://github.com/iolevel/peachpie-wordpress). Can anyone help me configure routing so wordpress can live under /content instead of / (root)? I'm trying to configure this sample project correctly before I move it over to my app as my existing app already routes root (/) back to the login screen. I've configured routing for razor pages and mvc but not sure how to configure this. I tried putting the below in startup and it works on the first page but subsequent pages get redirected back to root and subsequently fail:
        app.Map(new PathString("/content"), wp =>
        {
            wp.UseWordPress(path: "wordpress");
        });
amilcarwong
@amilcar34706591_twitter
Hi everyone, I need your support: what is your opinion about (my system is in aspnet but isn't a cms): 1) use worpress for business and marketing people---------> peachpie translate to ----> aspnet core ? the normal scenary is to have worpress and wish to migrate to aspnet. my scenary is the opposite
thanks in advance